• Struts2学习笔记——Struts2搭建和第一个小程序


    1.新建web项目

    2.配置Struts2核心过滤器

     (1)打开web.xml文件,做以下配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <welcome-file-list>
          <welcome-file>login.jsp</welcome-file>
      </welcome-file-list>
      
      <!-- 配置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>
    </web-app>

    (2)在src目录下新建一个struts.xml文件:

     

    3.完成第一个小程序:签到

     要求:

    ①登录:在WEB-INF目录下新建一个login.jsp面,输入用户名和密码,传入后端进行判断,如果用户名为admin且密码为1234,则跳转到签到页面,否则跳转到登录页面并提示“用户名或密码不正确!”。

    ②签到:在WEB-INF目录下新建一个sign.jsp页面,进行签到和签退,并提示相应操作的时间。

     (1)login.jsp页面: 

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form action="sign_signLogin" method="post">
            ${tip}<br>
            用户名:<input type="text" name="name"><br>
            密码:<input type="password" name="pwd"><br>
            <input type="submit" value="登录">
      
        </form>
    </body>
    </html>

    (2)sign.jsp页面: 

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <a href="sign_signIn">签到</a><br>
        <a href="sign_signOut">签退</a><br>
        ${tip}<br>
        
    </body>
    </html>

    (3)新建SignAction.java类

    package com.struts2_01;
    
    import java.util.Date;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts2.ServletActionContext;
    
    public class SignAction {
    
        /**
         * 登录
         */
        public String signLogin() {
            HttpServletRequest req = ServletActionContext.getRequest();//获取HttpServletRequest对象
            String username = req.getParameter("name");//获取输入的用户名
            String pwd = req.getParameter("pwd");//获取密码
            if ("admin".equals(username) && "1234".equals(pwd)) {
                return "sign";//返回的字符串,在struts.xml文件中配置
            }
            req.setAttribute("tip", "用户名或密码有误!");
            return "login";//返回的字符串,在struts.xml文件中配置
        }
        
        /**
         * 签到
         */
         public String signIn(){
               HttpServletRequest req = ServletActionContext.getRequest();
               req.setAttribute("tip", "签到时间:"+new Date());
               return "sign";
           }
    
         /**
          * 签退
          */
         public String signOut() {
             HttpServletRequest req = ServletActionContext.getRequest();
              req.setAttribute("tip", "签退时间:"+new Date());
            return "sign";
        }
    }

    (4)最重要的一步:配置struts.html文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        
        <package name="default" namespace="/" extends="struts-default">
            <!-- 配置调用哪个类中的哪个方法,action中的name表示前端访问的url地址,method是方法名,class是完整类名 -->
            <!-- <action name="signIn" method="signIn" class="com.struts2_01.SignAction"></action>
            <action name="signOut" method="signOut" class="com.struts2_01.SignAction"></action> -->
        
            <!-- struts2动态方法调用,作用是不用想上面那样每次调用方法都要创建一个action标签
                 sign_* :*号是占位符,代表方法名,url用sign_为前缀,如sign_signIn、sign_signOut。
                 {1} :表示name中的第一个*号    
             -->
            <action name="sign_*" method="{1}" class="com.struts2_01.SignAction">
                <!-- 指定方法执行后跳转的路径 
                     name的值和方法中返回的字符串一致
                     /sign.jsp是跳转的页面
                     -->
                <result name="sign">/sign.jsp</result>
                <result name="login">/login.jsp</result>
            </action>
        </package>
        
    </struts>

    4.测试(Tomcat环境下)

    登录成功后跳转页面,点击签到后的效果(签到时间显示):

  • 相关阅读:
    空值判断(is not null)
    http协议相关面试题
    Linux基本面试题。(感觉也就这几个了)
    1、了解django运行流程
    python笔试常见题
    selenium中一些可能用到的js操作
    元素判断
    二次封装
    关于在阿里云上面安装mysql遇到的一些问题。
    linux常用的一些基本命令
  • 原文地址:https://www.cnblogs.com/wrf-hsj/p/10795228.html
Copyright © 2020-2023  润新知