zoukankan      html  css  js  c++  java
  • (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"%>
    在平凡中坚持前行,总有一天,会遇见优秀的自己
  • 相关阅读:
    Forrester:开源APM发展势头强劲
    Forrester:开源APM发展势头强劲
    canvas 绘图api的位置问题
    canvas 绘图api的位置问题
    canvas 绘图api的位置问题
    canvas 绘图api的位置问题
    Android应用层View绘制流程与源码分析
    Android应用层View绘制流程与源码分析
    Android应用层View绘制流程与源码分析
    未来5年到底是做什么生意最好?
  • 原文地址:https://www.cnblogs.com/mao-19/p/5706201.html
Copyright © 2011-2022 走看看