Struts 2 初学的复习巩固
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中的编码一致即可。
Struts 2 初学的复习巩固的更多相关文章
- CATransition转场动画
背景: 最近在温习动画,分享个简单系统的转场动画 viewcontroller *VC=[self.storyboard instantiateViewControllerWithIdentifier ...
- Struts1.2,struts2.0原理分析
struts1原理: 1.首先我们表单提交到action 2.进入到web.xml 3.web.xml拦截*.do 4.交给ActionServlet 5.找到path属性,获得url 6.找到nam ...
- struts 2学习笔记—初学struts 2
首先我学习了struts 1.x与struts 2的区别: 1.struts 1.x的控制器类必须从Action类继承. 2.struts 2的控制器类可以是一个普通的类,也可以是ActionSupp ...
- #C++初学记录 (第一次测试)(A - 复习时间 )
练习题目一 (A-复习时间) 为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑.xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的 ...
- Struts2初学 struts.xml详解 一
一.简介 Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点 二.详解 首先让我们看一下一个简单的struts.xml文件的结构 < ...
- Struts2初学 Struts.xml详解二
A.使用继承实现设置全局视图 package节点中还可以设置全局的视图,如: <global-results> <result name="e ...
- Struts初学
自我概述 今天看了Struts,感觉这是个非常好用的东西!虽然它已经过时了,被springMVC取代了,但是仍然有了解的价值. 可是在学习过程中遇到了很多问题,比如其中一些原理很是抽象,有一些问题莫名 ...
- java初学复习
作为学Java的小白,忽然想看一看自己学了些什么东西,话不多说,(这都是新手弄的总结)让我们看一看: 1.我们要先了解Java技术 Java SE:标准版java技术的基础和核心 Java EE:企业 ...
- 初学HTML 常见的标签(一) 文本标签
最近做iOS开发的过程中, 发现要涉及到JS和原生OC(Swift)的交互, 作为一个Developer, 本着克服一切问题的原则, 开始学习HTML, 在这里记录下自己的学习笔记, 方便以后的复习, ...
随机推荐
- POJ 2186 Popular Cows (强联通)
id=2186">http://poj.org/problem? id=2186 Popular Cows Time Limit: 2000MS Memory Limit: 655 ...
- UML基本架构建模--类概述
Classes 类 Classes are the most important building block of any object-oriented system. A class is ...
- Swift - 浮点数转换成整数(四舍五入与直接截断)
1,直接截去小数部分转换成整数 使用强制转换会将浮点部分去除,把整数部分转换为整数. 1 var i = Int(23.50) //23 2,四舍五入转换成整数 lroundf是一个全局函数,作用是将 ...
- form表单提交不成功提示
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- mysql sql执行顺序
<pre name="code" class="html">mysql> explain select * from (select * fr ...
- 改动已有gpg密钥的用户标识及凝视
/********************************************************************* * Author : Samson * Date ...
- 关于sizeof的笔试面试题具体解释
原创Blog,转载请注明处处 http://blog.csdn.net/hello_hwc 注意:sizeof是编译期计算出结果的,这一点对后面的理解非常重要 一.关于结构体 先看下代码 #inclu ...
- 模拟new实例化对象。
使用new和字面量的的方法是两种主流创建对象的方法,两种最终都能达到同样的实例化的对象,本章主要围绕new关键字来实例化一个对象并且讲一个不使用new但是完全与new实例化对象相同的例子. 在使用ne ...
- 从Hadoop骨架MapReduce在海量数据处理模式(包括淘宝技术架构)
从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,认为它们非常是神奇.而神奇的东西常能勾 ...
- Java NIO 完全学习笔记(转)
本篇博客依照 Java NIO Tutorial翻译,算是学习 Java NIO 的一个读书笔记.建议大家可以去阅读原文,相信你肯定会受益良多. 1. Java NIO Tutorial Java N ...