当前位置: 首页 > news >正文

seo网站分析案例网站页面的优化

seo网站分析案例,网站页面的优化,爱洛阳网,三网网络建设公司一、先写几个概念: (一)、OGNL: (1)、OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性&#xf…

一、先写几个概念:

(一)、OGNL:

(1)、OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。

(2)、Struts 2默认的表达式语言是OGNL

(二)、OGNL用法:

OGNL是通常要结合Struts 2的标志一起使用。主要是#、%和$这三个符号的使用。

(1)、“#”主要有三种用途:

  1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:
     名称 作用 例子
    parameters包含当前HTTP请求参数的Map#parameters.id[0]作用相当于request.getParameter("id")
    request包含当前HttpServletRequest的属性(attribute)的Map#request.userName相当于request.getAttribute("userName")
    session包含当前HttpSession的属性(attribute)的Map#session.userName相当于session.getAttribute("userName")
    application包含当前应用的ServletContext的属性(attribute)的Map#application.userName相当于application.getAttribute("userName")
    attr用于按request > session > application顺序访问其属性(attribute)#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止
  2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100}
  3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}

(2)、“%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。


(3)、“$”有两个主要的用途,用于在国际化资源文件中,引用OGNL表达式。在Struts 2和i18n中配置文件


(三)、ActionContext

这个东西简单理解就是存action上下文的,把request,session,application等全部放进去,然后再这个的内部它自己写好了get和set,

比如我们后台要用session时,直接ActionContext.getContext().getSession();就可以得到sessionl了。


二、后台往前台传值的实例

访问web元素又分为两种类型,每种类型下都有两种取值方法

(一)、取得Map类型request,session,application

        ——依赖于容器

        ——依赖注入(ioc)(主要用这个)


(二)、真实类型 HttpServletRequest, HttpSession, ServletContext的引用:

        ——依赖于容器

        ——依赖注入(ioc)


下面四个有四个实例分别介绍这四种方法:


前台页面:

提交表单时,四个按钮分别对应四种方法:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%><% String context = request.getContextPath(); %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body><form name="f" action="" method=" post">
用户名:<input type="text" name="name"/>
密码:<input type="text" name="password"/><br />
<input type="button" value="submit1" οnclick="javascript:document.f.action='login/login1';document.f.submit();" />
<input type="button" value="submit2" οnclick="javascript:document.f.action='login/login2';document.f.submit();" />
<input type="button" value="submit3" οnclick="javascript:document.f.action='login/login3';document.f.submit();" />
<input type="button" value="submit4" οnclick="javascript:document.f.action='login/login4';document.f.submit();" />
</form></body>
</html>

效果如图:


structs.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.devMode" value="true" /><package name="login" extends="struts-default" namespace="/login"><action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}"><result>/user_login_success.jsp</result></action></package>
</struts>


LocationAction1.java

这是依赖structs容器来操作session的

import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction1 extends ActionSupport {private Map request;private Map session;private Map application;public LoginAction1() {request = (Map)ActionContext.getContext().get("request");session = ActionContext.getContext().getSession();application = ActionContext.getContext().getApplication();}public String execute() {request.put("r1", "r1");session.put("s1", "s1");application.put("a1", "a1");return SUCCESS; }	
}


LoginAction2.java

这个是通过依赖注入来实现操作session等属性

import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {private Map<String, Object> request;private Map<String, Object> session;private Map<String, Object> application;//DI dependency injection//IoC inverse of controlpublic String execute() {request.put("r1", "r1");session.put("s1", "s1");application.put("a1", "a1");return SUCCESS; }@Overridepublic void setRequest(Map<String, Object> request) {this.request = request;}@Overridepublic void setSession(Map<String, Object> session) {this.session = session;}@Overridepublic void setApplication(Map<String, Object> application) {this.application = application;}}


LoginAction3.java

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction3 extends ActionSupport {private HttpServletRequest request;private HttpSession session;private ServletContext application;public LoginAction3() {request = ServletActionContext.getRequest();session = request.getSession();application = session.getServletContext();}public String execute() {request.setAttribute("r1", "r1");session.setAttribute("s1", "s1");application.setAttribute("a1", "a1");return SUCCESS; }}

LoginAction4.java

package com.bjsxt.struts2.user.action;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction4 extends ActionSupport implements ServletRequestAware {private HttpServletRequest request;private HttpSession session;private ServletContext application;public String execute() {request.setAttribute("r1", "r1");session.setAttribute("s1", "s1");application.setAttribute("a1", "a1");return SUCCESS; }@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();this.application = session.getServletContext();}}


项目结构如图所示:



http://www.qdjiajiao.com/news/974.html

相关文章:

  • 建筑工程信息网站网推资源渠道
  • 做购物网站骗人线上宣传推广方式
  • 做的比较好的美食网站有哪些制作网页app
  • 设计本装修家居宁波seo公司推荐
  • ps做网站设计稿美国疫情最新数据消息
  • 东莞南城房价郑州seo
  • 做导购网站多少钱百度推广员工工资怎么样
  • 前几年做那个网站致富市场推广方案怎么写
  • 网页搜索器潍坊seo教程
  • 上海今天新闻发布会直播网站seo诊断分析和优化方案
  • 中国乐清网seo排名优化推广报价
  • 网站建设天乐大厦最近新闻事件
  • 国内外贸网站建设公司宁波seo企业推广
  • wordpress 谷歌收录快关键词优化seo
  • 网站开发访客ip郑州seo哪家专业
  • 青岛建手机网站哪家好百度没有排名的点击软件
  • 全球十大咨询公司外贸seo
  • 做网站如何上传apk微信朋友圈广告在哪里做
  • 自己用电脑做网站服务器百度商店应用市场
  • 郑州响应式网站制作百度搜索提交入口
  • 网站建设全国排行百度 指数
  • 做高仿包的能做网站吗营销网站建设的因素
  • 门户网站的建立济南seo外包公司
  • 用摄像头直播网站怎么做seo网站有哪些
  • 国家网站备案查询系统中国推广网
  • 石家庄便宜做网站买卖链接网
  • 用友公司能不能做网站建设系统优化助手
  • wordpress用虚拟主机还是vps珠海seo关键词排名
  • 赣州网站建设 赣州网页设计企业网站推广建议
  • 个人网页设计模板图片手机版seo北京网站推广