1、Struts2的原理/流程步骤
简单的理解:
1、客户端发送一个request请求,Tomcat服务器接收到的请求经过web.xml配置文件去处理,进入struts2的核心过滤器,从而进入struts2的struts.xml配置文件。
2、根据客户端的请求action名称去寻找struts.xml配置文件中对应的action名称,从而去调用action包下对应的action类,经过一系列的逻辑处理后,将处理的结果返回给struts2。
3、最后struts2将结果返回给客户端并显示出操作后的结果。
2、基础配置(实例解析)
web.xml 配置文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 <display-name></display-name> 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file> 10 </welcome-file-list> 11 12 <!-- struts2过滤器 --> 13 <filter> 14 <filter-name>struts2</filter-name> 15 <filter-class> 16 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 17 </filter-class> 18 </filter> 19 <filter-mapping> 20 <filter-name>struts2</filter-name> 21 <url-pattern>/*</url-pattern> 22 </filter-mapping> 23 24 </web-app>
struts2.xml 配置文件(创建在src目录下)
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 <package name="loginDemo" namespace="/" extends="struts-default" > 8 <action name="login" class="com.shore.action.LoginAction" > 9 <result name="success">success.jsp</result> 10 <result name="error">error.jsp</result> 11 </action> 12 </package> 13 </struts>
LoginAction 类
1 package com.shore.action; 2 3 import com.opensymphony.xwork2.Action; 4 5 6 7 /** 8 * @author DSHORE/2019-9-10 9 * 10 */ 11 public class LoginAction implements Action { 12 13 private String username; 14 private String password; 15 16 public void setUsername(String username) { 17 this.username = username; 18 } 19 public void setPassword(String password) { 20 this.password = password; 21 } 22 23 public String execute() throws Exception { 24 System.out.println("用户名:"+username+" -密码:"+password); 25 if (username.equals("zhangsan") && password.equals("123456")) { 26 return SUCCESS; 27 }else { 28 return ERROR; 29 } 30 } 31 }
index.jsp 页面
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'index.jsp' starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 <form action="login.action" method="post" name="loginForm"> 25 用户名:<input type="text" name="username" /><br/> 26 密 码:<input type="password" name="password" /><br/> 27 <input type="submit" name="sbm" value="提交" /> 28 </form> 29 </body> 30 </html>
运行结果图:
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/11502389.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |