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

seo网站分析案例网站模板免费下载

seo网站分析案例,网站模板免费下载,wordpress生成的html,做网站在哪里买空间域名一、先写几个概念: (一)、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.tj-hxxt.cn/news/121723.html

相关文章:

  • 网站建设报价方案对比百度seo快速
  • 电商商城网站开发框架企业推广
  • 开封网站建设流程与步骤关键词首页排名代发
  • 常州建设局官方网站代刷网站推广免费
  • 数据可视化网站模板免费推广的平台
  • 诸暨市建设局行业管理网站百度搜索平台
  • 最适合seo的网站源码app网络推广公司
  • 男女做a视频网站管理课程培训
  • 做系统吧收藏的网站做没了软文写作范文500字
  • 电商营销手段有哪些石家庄百度快照优化
  • 响应式网站建设平台最近的疫情情况最新消息
  • 瑞安微网站建设外链是什么
  • 婚恋网站要钱吗bt兔子磁力搜索引擎最新版
  • 小投资加盟店推荐百度ocpc怎么优化
  • 做业务一般要注册哪些网站免费的个人网站怎么做
  • 备案 网站错了seo培训班
  • 做网站和编程有关系吗网建公司
  • 前端asp网站开发网站设计案例
  • 赣州企业网站建设推广seo流程
  • 网站做302跳转的意义网站推广联盟
  • 自己的电脑做网站服务器吗推广点击器
  • 淮南建设网站seo优化软件有哪些
  • 国内知名网站建设伺百度热搜关键词排名
  • 除了dz论坛还能搭建什么网站友情链接买卖平台
  • 手机网站建设可行性分析如何自己建个网站
  • 做ptt有什么好的模板网站首页排名关键词优化
  • thinkphp网站后台模板google官方下载安装
  • 图片设计用什么软件seo关键词推广
  • 做百度网站电话号码湖南优化电商服务有限公司
  • 公司网站建站哪个系统好用搜索引擎优化seo价位