(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"%>

 

posted on 2016-07-26 09:26  step_step  阅读(333)  评论(0编辑  收藏  举报

导航