日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第一个Struts2程序

發布時間:2025/4/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一个Struts2程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下是一個表單信息提交,返回的程序,發現?Struts 大部分都是由xml文件來控制執行流程

?

步驟一

在MyEclipse建一個名為Struts2的web工程,接著就要導入外部相關的jar包,這些jar包都可以去網上下載,把這些jar包放在工程的lib目錄下,

如下圖:

?

這里有9個jar文件,我用的struts版本是 Struts2.3.1.2

?

步驟二:

在WebRoot目錄下建一個login.jsp

?

[html]?view plain?copy
  • <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>??
  • <%??
  • String?path?=?request.getContextPath();??
  • String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";??
  • %>??
  • ??
  • <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">??
  • <html>??
  • ??<head>??
  • ????<base?href="<%=basePath%>">??
  • ??????
  • ????<title>My?JSP?'login.jsp'?starting?page</title>??
  • ??????
  • ????<meta?http-equiv="pragma"?content="no-cache">??
  • ????<meta?http-equiv="cache-control"?content="no-cache">??
  • ????<meta?http-equiv="expires"?content="0">??????
  • ????<meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3">??
  • ????<meta?http-equiv="description"?content="This?is?my?page">??
  • ????<!--?
  • ????<link?rel="stylesheet"?type="text/css"?href="styles.css">?
  • ????-->??
  • ??
  • ??</head>??
  • ????
  • ??<body>??
  • ??????
  • ????<form?action="login">??
  • ???????????用戶名:<input?type="text"?name="usename"?/><br/>??
  • ???????????密碼:???<input?type="password"?name="password"?/><br/>??
  • ?????????<input?type="submit"?value="登錄"/>??
  • ??????
  • ????</form>??????
  • ??????
  • ??</body>??
  • </html>??
  • ?

    Action類,一般會去繼承ActionSupport類,action類還可以實現Preparable接口,完成action類的一些初始化工作,就得去實現Preparable接口的prepare()方法,在該方法里面完成初始化工作,該方法是在execute()方法之前得到調用

    接著在工程下面建一個LoginAction.java文件,這個java文件的成員變量最好和login.jsp表單的屬性名字一致,如果不一致,也可以,但至少你的setXXX,和getXXX的名字要和表單的屬性名一致

    ?

    LoginAction.java

    ?

    [java]?view plain?copy
  • package?com.struts2;??
  • ??
  • public?class?LoginAction?{??
  • ??????
  • ????private?String?usename?;??
  • ????private?String?password?;??
  • ??????
  • ????public?String?getUsename()?{??
  • ????????return?usename;??
  • ????}??
  • ????public?void?setUsename(String?usename)?{??
  • ????????this.usename?=?usename;??
  • ????}??
  • ????public?String?getPassword()?{??
  • ????????return?password;??
  • ????}??
  • ????public?void?setPassword(String?password)?{??
  • ????????this.password?=?password;??
  • ????}??
  • ??????
  • ????//這個方法不可少??
  • ????public?String?execute()??
  • ????{??
  • ????????return?"success"?;??
  • ????}??
  • ??
  • }??
  • ?

    ?

    接著在WebRoot目錄下建一個result.jsp結果頁面,用來顯示結果

    result.jsp

    ?

    [html]?view plain?copy
  • <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>??
  • <%??
  • String?path?=?request.getContextPath();??
  • String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";??
  • %>??
  • ??
  • <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">??
  • <html>??
  • ??<head>??
  • ????<base?href="<%=basePath%>">??
  • ??????
  • ????<title>My?JSP?'result.jsp'?starting?page</title>??
  • ??????
  • ????<meta?http-equiv="pragma"?content="no-cache">??
  • ????<meta?http-equiv="cache-control"?content="no-cache">??
  • ????<meta?http-equiv="expires"?content="0">??????
  • ????<meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3">??
  • ????<meta?http-equiv="description"?content="This?is?my?page">??
  • ????<!--?
  • ????<link?rel="stylesheet"?type="text/css"?href="styles.css">?
  • ????-->??
  • ??
  • ??</head>??
  • ????
  • ??<body>??
  • ????<!--?EL表達式?-->??
  • ????usename:?${requestScope.usename?}?<br/>??
  • ????password:?${requestScope.password?}????
  • ??????
  • ??</body>??
  • </html>??


  • ?

    ?

    步驟三:

    在web.xml文件中聲明過濾器,這個過濾器不是自己寫的,是struts封裝好的

    ?

    [html]?view plain?copy
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <web-app?version="2.5"???
  • ????xmlns="http://java.sun.com/xml/ns/javaee"???
  • ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"???
  • ????xsi:schemaLocation="http://java.sun.com/xml/ns/javaee???
  • ????http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">??
  • ????
  • ??<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>??
  • ????
  • ????
  • ??<welcome-file-list>??
  • ????<welcome-file>index.jsp</welcome-file>??
  • ??</welcome-file-list>??
  • </web-app>??

  • 接著在src目錄下建一個struts.xml文件,建完后也可以在WebRoot\WEB-INF\classes中看到,因為IDE幫我們拷貝了一份,這個文件非常重要,在這個程序里就是核心

    ?

    struts.xml

    ?

    [html]?view plain?copy
  • <?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">??
  • ??????
  • <struts>??
  • ???<package?name="struts2"?extends="struts-default">??
  • ??????<!--?name="login"?這個名字可以自己定義?要和?提交表單的那個action名字一致?-->??
  • ??????<action?name="login"?class="com.struts2.LoginAction">??
  • ??????????????
  • ????????????<!--?name="success"???
  • ??????????????????????????????????這個名字要和LoginAction.java?的?execute()?方法的返回值一致???
  • ????????????-->??
  • ????????????<result?name="success">/result.jsp</result>??
  • ??????????
  • ??????</action>??
  • ?????
  • ???</package>???
  • ??
  • </struts>??
  • ?

    ?

    現在這個簡單的Struts程序就算完成了,接著來部署了,在tomcat文件夾下找到server.xml文件,在</Host>標簽上加上

    <Context path="/struts2" docBase="E:\code\java_web\Struts2\WebRoot" reloadable="true" />

    即可,具體部署參照部署web工程步驟

    啟動服務器即可訪問………………………………………………………………………………………………………………

    ?

    總結:

    因為剛接觸struts2,不太熟悉,發現大部分都是由xml文件來控制執行流程,用到了很多jar包,就拿那個過濾器來說吧,現在不用自己寫過濾器了,只要在web.xml文件中配置一下即可,因為struts2給我們封裝好了

    ?

    分析一下執行流程:

    1) 首先瀏覽器訪問login.jsp的時候會web.xml的過濾器檢查到,接著把表單的信息提交到login,

    <form action="login">? 默認會把后綴名加上,如: <form action="login.Action">,

    ?

    2) 執行到struts.xml

    發現struts.xml文件中的<action name="login" class="com.struts2.LoginAction">? name的屬性名與表單提交過來的action名字相匹配,就執行對應的class ???com.struts2.LoginAction? java程序,

    調用setXXX方法 把表單的信息 存在request域中

    ?

    3) 執行com.struts2.LoginAction里的execute()方法,發現該方法返回的值和

    <result name="success">/result.jsp</result>

    name的屬性值相匹配,則執行result.jsp,返回結果給用戶

    ?

    執行完畢……

    轉載于:https://www.cnblogs.com/hoobey/p/5294502.html

    總結

    以上是生活随笔為你收集整理的第一个Struts2程序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。