(1)WEB框架概念和struts2体验
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"%>
在平凡中坚持前行,总有一天,会遇见优秀的自己