java struts 框架_java struts 框架编程
Struts:
Struts?是一個java編程的框架,它是基于MVC模式為基礎的。它靈活地運用jsp和servlet技術。它是一個插件,是別人已經事先編寫好的。我們只使用它的框架來設計編程,這很好的解決了不同人有不同編程習慣的問題。
Struts編程框架:
1-在myeclipse軟件中建立一個web?project工程文件。名字隨意
2-建立完web?project后,點擊工程文件夾(選中)。再在myeclipse軟件中導入struts編程所需要的庫文件。步驟:myeclipse軟件的myeclipse菜單->project?capabilites?->?Add?capabilites出現
Struts?config?path:/WEB-INF/struts-config.xml?這是配置文件的路徑,默認就好不需要改
Struts?specification?-----struts的版本。這里選中1.2最新是2.1版
ActionServlet?name:?action?意思明顯,不解析了
URL?pattern?:?默認是*.do就是執行action的URL路徑
Base?package?for?new?classes:?這里是包名,可自取名字
Default?application?resources?不需要修改;
點擊Finish完成struts庫文件的導入。
導入成功后的文件結構如下:
struts-config.xml:配置文件,在這里新建action,form,jsp
validator-rules.xml:validator?框架的配置文件,該文件別人已經配置好。我們只需要用就行。
其余以struts開始的都是struts標簽的配置文件。我們只需要使用即可,當然也可以自我進行配置自己特定的標簽。
一個實例演示struts:學生學籍查詢(模糊查詢)
需求分析:查詢學生學籍,要涉及到數據庫的操作,要涉及到頁面的表單操作。
輸入學生名字,點擊模糊查詢。會返回查詢結果。
這里目的只是顯示struts的知識點。頁面操作等詳細細節不做過多要求。
在以上的基礎上,在temp包下新建QueryForm.java和QueryAction.java在src下新建兩個包,一個是bean文件的,一個操作數據庫的,分別是com.bean和com.dao。com.bean下新建StudentBean.java文件com.dao下新建StudentDao.java文件
WebRoot新建queryform.jsp文件和result.jsp文件index.jsp可以做導航頁面(新建工程時既有)。
各個文件的內容如下:
StudentBean.java文件:
package?com.bean;
//封裝一個學生的資料
public?class?StudentBean?{
private?String?stuId;
private?String?stuName;
private?String?stuSex;
private?String?stuBir;
private?String?stuAdd;
public?String?getStuId()?{
return?stuId;
}
public?void?setStuId(String?stuId)?{
this.stuId?=?stuId;
}
public?String?getStuName()?{
return?stuName;
}
public?void?setStuName(String?stuName)?{
this.stuName?=?stuName;
}
public?String?getStuSex()?{
return?stuSex;
}
public?void?setStuSex(String?stuSex)?{
this.stuSex?=?stuSex;
}
public?String?getStuBir()?{
return?stuBir;
}
public?void?setStuBir(String?stuBir)?{
this.stuBir?=?stuBir;
}
public?String?getStuAdd()?{
return?stuAdd;
}
public?void?setStuAdd(String?stuAdd)?{
this.stuAdd?=?stuAdd;
}
}
StudentDao.java文件:
package?com.dao;
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.ResultSet;
import?java.sql.SQLException;
import?java.util.ArrayList;
import?com.bean.StudentBean;
public?class?StudentDao?{
private?Connection?conn?=?null;
public?void?initConnection()?{
try?{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn?=?DriverManager
.getConnection("jdbc:sqlserver://localhost:1433;"
+?"?DatabaseName=學生學籍信息",?"sa",?"sa");
}?catch?(Exception?e)?{
}
}
public?ArrayList?queryStuByName(String?sname)?{
ArrayList?stus?=?new?ArrayList();
String?sql?=?"select?學號,姓名,性別,出生年月,"?+?"家庭住址from學籍表where姓名like?'%"
+?sname?+?"%'";
//System.out.println("StudentDao.java中queryStuByName函數sname="+sname);
try?{
this.initConnection();
ResultSet?rs?=?conn.createStatement().executeQuery(sql);
while?(rs.next())?{
StudentBean?stu?=?new?StudentBean();
stu.setStuId(rs.getString("學號"));
stu.setStuName(rs.getString("姓名"));
stu.setStuSex(rs.getString("性別"));
stu.setStuBir(rs.getString("出生年月"));
stu.setStuAdd(rs.getString("家庭住址"));
stus.add(stu);
}
}?catch?(SQLException?e)?{
e.printStackTrace();
}?finally?{
this.closeConnection();
}
return?stus;
}
public?void?closeConnection()?{
try?{
if?(conn?!=?null)?{
conn.close();
conn?=?null;
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
index.jsp文件:
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
-//W3C//DTD?HTML?4.01?Transitional//EN">
">
My?JSP?'index.jsp'?starting?pageThis?is?my?JSP?page.
學生學籍查詢
queryform.jsp文件:
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
-//W3C//DTD?HTML?4.01?Transitional//EN">
">
My?JSP?'queryform.jsp'?starting?page查詢表單
請您輸入學生姓名:
result.jsp文件:
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()?+"://"
+?request.getServerName()?+":"+?request.getServerPort()
+?path?+"/";
%>
-//W3C//DTD?HTML?4.01?Transitional//EN">
">
My?JSP?'queryform.jsp'?starting?page返回結果頁面
學號 | 姓名 | 性別 | 出生年月 | 家庭住址 |
for(inti=0;i
StudentBean?stu=(StudentBean)stus.get(i);
%>
QueryForm.jsp文件:
packageproject02;
importorg.apache.struts.action.ActionForm;
//這是ActionForm為了容納表單的值
//規范:
//1-必須繼承org.apache.struts.action.ActionForm
//2-必須編寫和表單元素重名的元素屬性
//3-必須在Struts配置文件中注冊
@SuppressWarnings("serial")
publicclassQueryFormextendsActionForm{
publicQueryForm(){
System.out.println("QueryForm.java構造函數運行");
}
privateStringsname;
publicStringgetSname()?{
System.out.println("QueryForm.java中getSname函數運行");
returnsname;
}
publicvoidsetSname(String?sname)?{
this.sname=?sname;
System.out.println("QueryForm.java中setSname函數運行");
}
}
queryAction.java文件:
package?project02;
import?java.util.ArrayList;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.apache.struts.action.Action;
import?org.apache.struts.action.ActionForm;
import?org.apache.struts.action.ActionForward;
import?org.apache.struts.action.ActionMapping;
import?com.dao.StudentDao;
//QueryAction負責接收ActionForm的數據,然后進行處理
//規則:
//1-必須繼承org.apache.struts.action.Action
//2-重寫excute方法業務邏輯
//3-將這個類在配置文件中注冊
public?class?QueryAction?extends?Action{
public?QueryAction(){
System.out.println("QueryAction.java構造函數運行");
}
@Override
public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,
HttpServletRequest?request,?HttpServletResponse?response)
throws?Exception?{
QueryForm?queryForm=(QueryForm)form;
String?sname=queryForm.getSname();
sname=new?String(sname.getBytes("iso-8859-1"),"gb2312");
StudentDao?studentDao=new?StudentDao();
ArrayList?stus=studentDao.queryStuByName(sname);
request.setAttribute("stus",?stus);
System.out.println("QueryAction.java中execute函數運行");
// 跳轉
ActionForward?af=new?ActionForward("/result.jsp");
//設置了配置文件可以用以下方式跳轉
// ActionForward?af?=?mapping.findForward("RESULT");
//以上方式出現異常警告:警告:?Unable?to?find?'RESULT'?forward.
return?af;
}
}
編寫了以上的文件還未能實現struts的功能,要對各個文件之間的關系在struts-config.xml文件進行配置。
配置如下:
-//Apache?Software?Foundation//DTD?Struts?Configuration?1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd">
最后,對工程文件進行發布,啟動tomcat,用瀏覽器測試。
現在,來梳理清楚。根據需求建立功能。根據要求建立form和action文件。最后對struts-config.xml文件進行配置。
測試操作步驟:
1-進入index.jsp導航頁面,點擊學生學籍查詢進入了queryform.jsp頁面
2-進入了queryform.jsp頁面,在文本框輸入學生名中的一個或兩個字進行模糊查詢。點擊模糊查詢。
請您輸入學生姓名:
Action:指定了action要執行的路徑method:提交的方式--post不顯示信息,get顯示信息
3-進入了/Project02/query.do到了QueryAction.java執行。這里為什么是到QueryAction.java文件下執行的呢?
因為配置文件已經完成了配置。注冊Action中的path=”/query”就是query.do只是沒有了.do后綴。這里已經指定了type類的路徑為:project02.QueryAction所以執行QueryAction.java文件。
4-接下來的就是java文件了,大都能看懂。
總結
以上是生活随笔為你收集整理的java struts 框架_java struts 框架编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java gson 工具类_GSON 实
- 下一篇: php调接口post,php模拟post