Q:使用Struts2 开发程序的基本步骤?

A:

1)加载Struts2类库;

2)配置web.xml文件,定义核心Filter来拦截用户请求;

3)开发视图层页面,即JSP页面;

4)定义处理用户请求的Action类;

5)配置struts.xml来配置Action和配置处理结果和物理试图资源之间的对应关系,如

<action name="login" class="com.zifo.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>

6)部署、运行项目。

Q:Struts2中如何获取Servlet的session对象?

A:

在Struts2中访问Servlet的session对象有两种方式:与ServletAPI解耦的方式访问和与ServletAPI耦合的方式访问。

1)解耦的方式:

public String execute(){
if(username.equals("admin") && password.equals("akdz04b")){
Map<String,Object> session = null;
session = ActionContext.getContext().getSession();
//CURRENT_USER的定义为private static final String CURRENT_USER = "CURRENT_USER";
if(session.containsKey(CURRENT_USER)){
session.remove(CURRENT_USER);
}
session.put(CURRENT_USER, username);
return "success";
}else{
return "fail";
}
}

2)耦合的方式

public String execute(){
if(username.equals("admin") && password.equals("akdz04b")){
HttpSession session = null;
session = ServletActionContext.getRequest().getSession();
if(session.getAttribute(CURRENT_USER) != null){
session.removeAttribute(CURRENT_USER);
}
session.setAttribute(CURRENT_USER, username);
return "success";
}else{
return "fail";
}
}

Q:Strust2表单标签和普通HTML表单标签有什么不同之处?如何解决表单中的中文乱码问题?

A:

Struts2中的<s:form>可以认为是把html中的<form>标签封装扩充了一些功能。下面是struts2文档中对<form>标签的描述

http://struts.apache.org/release/2.3.x/docs/form.html

至于出现乱码,原因是因为struts2的默认提交字符编码与JSP页面的编码不一致造成的。

一般来讲,默认提交汉字字符编码是UTF-8,则需要做如下配置:

在struts.xml中<struts>标签下,<package>标签之上添加:

<constant name="struts.i18n.encoding" value="UTF-8" />

在JSP页面编码修改为:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

即保证JSP页面和struts.xml中的编码一致即可。

最新文章

  1. 41个Web开发者JavaScript实用小技巧
  2. bat批处理文件启动Eclipse和ivy本地仓库的配置
  3. libevent系列之一——libevent介绍
  4. android读取远程图片案例
  5. ThinkPHP常用变量
  6. SNAT
  7. Python之路----数据类型
  8. css3响应式布局
  9. LeetCode_Restore IP Addresses
  10. Catalog和Schema
  11. 英文版Ubuntu安装配置搜狗拼音输入法
  12. Carthage的安装和使用
  13. Java实现简易的文件的迁移器
  14. 嵌入式linux——点亮led灯(二)
  15. js实用方法记录-指不定哪天就会用到的js方法
  16. android用OkHttp和okio包通信的坑--气死我了
  17. Flask--SQLAlchemy--基本查询备忘
  18. xml的方式配置AOP:Aspect Oriented Programming
  19. scrapy框架之持久化操作
  20. Oracle_SQL(4) DDL 表和约束

热门文章

  1. ubuntu安装iscsi
  2. 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie
  3. POJ 3835 &amp;amp; HDU 3268 Columbus’s bargain(最短路 Spfa)
  4. EXTJS4两个ComboBox的数据源联动,解决遇到第二个ComboBox第二次以后显示忙的状态问题
  5. Linux pipe功能
  6. Rudiments 0.42 发布,C++ 常用工具包 - 开源中国社区
  7. docs/pcs/rest/file data apis list - 百度开发者中心
  8. 最佳新秀SSH(十三)——Spring集装箱IOC分析和简单的实现
  9. oschina 手机/移动开发
  10. hdu4908(中位数)