Struts快速入门

day31

1.相关jar包 Struts2-core-lib(Struts2 的核心jar包)

代理的两种方式

JDK(简单,不稳定)和第三方

javaassist包——动态代理

ognl包——Struts2使用的EL被OGNL替代(表达式语言)

commons-lang是java.lang的增强

xwork是webwork的升级

2.配置web.xml,启动Struts2

<!-- Struts2核心过滤器,专用于过滤所有请求-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3.写jsp

    <form action="/day31/add.action" method="post">
<table border="2" align="center">
<caption><h3>加法运算(struts2版本)</h3></caption>
<tr>
<th>操作数一</th>
<td><input type="text" name="num1" value="20"/></td>
</tr>
<tr>
<th>操作数二</th>
<td><input type="text" name="num2" value="25"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="加法"/>
</td>
</tr>
</table>
</form>
<hr/>
${requestScope.sum}

4.写action

//类似为Servlet
public class AddAction {
//类似于doXxx(),不管get/post都执行此方法
public String execute() throws Exception, IOException{
//获取请求对象request 响应对象response
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
//获取表单参数
Integer num1=Integer.parseInt(request.getParameter("num1"));
Integer num2=Integer.parseInt(request.getParameter("num2"));
Integer sum=num1+num2;
//将结果放在域对象request中
request.setAttribute("sum", sum);
//转发到add.jsp中
request.getRequestDispatcher("/add.jsp").forward(request, response);
return null; }
}

5.配置struts.xml的自动提示  http://jingyan.baidu.com/article/9158e0004054baa2541228e2.html

6.配置struts.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"> <!-- struts2的核心配置文件,在应用部署时加载并解析 -->
<struts>
<package name="base" extends="struts-default"><!-- struts2内部的一个核心包 -->
<action
name="add"
class="cn.itcast.web.struts2.add.AddAction"
method="execute"/>
</package>
</struts>
<!-- <action name代表请求的路径,无需/day31
        class代表请求对应的处理类(使用全路径名)
         method代表请求对应的处理类的处理控制方法

相关的Action类放在同一个包下,struts2以包来区分不同的Action
name包名(不能重复)
extends自定义包,只继承struts2框架的内置包
自定义类就可以用内置的常用功能

-->

7.访问http://localhost:8080/day31/add.jsp

运行jsp乱码

<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

最新文章

  1. 【转】家庭wifi覆盖指导
  2. MySQL性能优化的20条经验
  3. ndk学习18: JNI之C&C++调用Java
  4. 系分过了,mark一下,就从这里开始吧
  5. C/C++链表操作(面试)
  6. 通过HTML5实现发送声音
  7. html5 之 canvas 相关知识(一)概念及定义
  8. javascript笔记——图片大小检测
  9. tcp接收xml数据解析
  10. 不是技术牛人,如何拿到国内IT巨头的Offer(转)
  11. Python之深浅拷贝&amp;函数
  12. jdk8 之 java.time包AND DateUtils
  13. APUE-文件和目录(四)文件系统
  14. kvm之六:配置kvm虚拟机通过VNC访问
  15. day20 hashlib、hmac、subprocess、configparser模块
  16. spring MVC 项目 WEB-INF下的jsp不能加载css文件
  17. 使用K-means进行聚类,用calinski_harabaz_score评价聚类效果
  18. 把已经安装到C盘的软件完美移动到D盘
  19. 跟着未名学Office - 高效笔记OneNote
  20. Cannot find module &#39;../lib/utils/unsupported.js&#39;

热门文章

  1. iOS后台解析
  2. Java面向对象编程(二)
  3. div下拉框(待改善)
  4. 【Excle数据透视】如何创建一个数据透视表
  5. java:可变参数(转载)
  6. Nginx配置SSL安全证书避免启动输入Enter PEM pass phrase
  7. DWR3.0(Direct Web Remoting)实践
  8. 【C/C++】高亮C++中函数的重写——函数名相同?参数列表相同?返回值相同?
  9. linux下安装最新版Subversion 1.8.9
  10. 成长型思维模式Not yet