Struts 2 初学的复习巩固
2024-10-14 05:28:13
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中的编码一致即可。
最新文章
- 41个Web开发者JavaScript实用小技巧
- bat批处理文件启动Eclipse和ivy本地仓库的配置
- libevent系列之一——libevent介绍
- android读取远程图片案例
- ThinkPHP常用变量
- SNAT
- Python之路----数据类型
- css3响应式布局
- LeetCode_Restore IP Addresses
- Catalog和Schema
- 英文版Ubuntu安装配置搜狗拼音输入法
- Carthage的安装和使用
- Java实现简易的文件的迁移器
- 嵌入式linux——点亮led灯(二)
- js实用方法记录-指不定哪天就会用到的js方法
- android用OkHttp和okio包通信的坑--气死我了
- Flask--SQLAlchemy--基本查询备忘
- xml的方式配置AOP:Aspect Oriented Programming
- scrapy框架之持久化操作
- Oracle_SQL(4) DDL 表和约束
热门文章
- ubuntu安装iscsi
- 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie
- POJ 3835 &;amp; HDU 3268 Columbus’s bargain(最短路 Spfa)
- EXTJS4两个ComboBox的数据源联动,解决遇到第二个ComboBox第二次以后显示忙的状态问题
- Linux pipe功能
- Rudiments 0.42 发布,C++ 常用工具包 - 开源中国社区
- docs/pcs/rest/file data apis list - 百度开发者中心
- 最佳新秀SSH(十三)——Spring集装箱IOC分析和简单的实现
- oschina 手机/移动开发
- hdu4908(中位数)