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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java struts 框架_java struts 框架编程

發(fā)布時(shí)間:2025/3/12 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java struts 框架_java struts 框架编程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Struts:

Struts?是一個(gè)java編程的框架,它是基于MVC模式為基礎(chǔ)的。它靈活地運(yùn)用jsp和servlet技術(shù)。它是一個(gè)插件,是別人已經(jīng)事先編寫好的。我們只使用它的框架來設(shè)計(jì)編程,這很好的解決了不同人有不同編程習(xí)慣的問題。

Struts編程框架:

1-在myeclipse軟件中建立一個(gè)web?project工程文件。名字隨意

2-建立完web?project后,點(diǎn)擊工程文件夾(選中)。再在myeclipse軟件中導(dǎo)入struts編程所需要的庫文件。步驟:myeclipse軟件的myeclipse菜單->project?capabilites?->?Add?capabilites出現(xiàn)

Struts?config?path:/WEB-INF/struts-config.xml?這是配置文件的路徑,默認(rèn)就好不需要改

Struts?specification?-----struts的版本。這里選中1.2最新是2.1版

ActionServlet?name:?action?意思明顯,不解析了

URL?pattern?:?默認(rèn)是*.do就是執(zhí)行action的URL路徑

Base?package?for?new?classes:?這里是包名,可自取名字

Default?application?resources?不需要修改;

點(diǎn)擊Finish完成struts庫文件的導(dǎo)入。

導(dǎo)入成功后的文件結(jié)構(gòu)如下:

struts-config.xml:配置文件,在這里新建action,form,jsp

validator-rules.xml:validator?框架的配置文件,該文件別人已經(jīng)配置好。我們只需要用就行。

其余以struts開始的都是struts標(biāo)簽的配置文件。我們只需要使用即可,當(dāng)然也可以自我進(jìn)行配置自己特定的標(biāo)簽。

一個(gè)實(shí)例演示struts:學(xué)生學(xué)籍查詢(模糊查詢)

需求分析:查詢學(xué)生學(xué)籍,要涉及到數(shù)據(jù)庫的操作,要涉及到頁面的表單操作。

輸入學(xué)生名字,點(diǎn)擊模糊查詢。會(huì)返回查詢結(jié)果。

這里目的只是顯示struts的知識(shí)點(diǎn)。頁面操作等詳細(xì)細(xì)節(jié)不做過多要求。

在以上的基礎(chǔ)上,在temp包下新建QueryForm.java和QueryAction.java在src下新建兩個(gè)包,一個(gè)是bean文件的,一個(gè)操作數(shù)據(jù)庫的,分別是com.bean和com.dao。com.bean下新建StudentBean.java文件com.dao下新建StudentDao.java文件

WebRoot新建queryform.jsp文件和result.jsp文件index.jsp可以做導(dǎo)航頁面(新建工程時(shí)既有)。

各個(gè)文件的內(nèi)容如下:

StudentBean.java文件:

package?com.bean;

//封裝一個(gè)學(xué)生的資料

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=學(xué)生學(xué)籍信息",?"sa",?"sa");

}?catch?(Exception?e)?{

}

}

public?ArrayList?queryStuByName(String?sname)?{

ArrayList?stus?=?new?ArrayList();

String?sql?=?"select?學(xué)號(hào),姓名,性別,出生年月,"?+?"家庭住址from學(xué)籍表where姓名like?'%"

+?sname?+?"%'";

//System.out.println("StudentDao.java中queryStuByName函數(shù)sname="+sname);

try?{

this.initConnection();

ResultSet?rs?=?conn.createStatement().executeQuery(sql);

while?(rs.next())?{

StudentBean?stu?=?new?StudentBean();

stu.setStuId(rs.getString("學(xué)號(hào)"));

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?page

This?is?my?JSP?page.

學(xué)生學(xué)籍查詢

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

查詢表單

請(qǐng)您輸入學(xué)生姓名:

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

返回結(jié)果頁面

學(xué)號(hào)

姓名

性別

出生年月

家庭住址

for(inti=0;i

StudentBean?stu=(StudentBean)stus.get(i);

%>

QueryForm.jsp文件:

packageproject02;

importorg.apache.struts.action.ActionForm;

//這是ActionForm為了容納表單的值

//規(guī)范:

//1-必須繼承org.apache.struts.action.ActionForm

//2-必須編寫和表單元素重名的元素屬性

//3-必須在Struts配置文件中注冊(cè)

@SuppressWarnings("serial")

publicclassQueryFormextendsActionForm{

publicQueryForm(){

System.out.println("QueryForm.java構(gòu)造函數(shù)運(yùn)行");

}

privateStringsname;

publicStringgetSname()?{

System.out.println("QueryForm.java中g(shù)etSname函數(shù)運(yùn)行");

returnsname;

}

publicvoidsetSname(String?sname)?{

this.sname=?sname;

System.out.println("QueryForm.java中setSname函數(shù)運(yùn)行");

}

}

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負(fù)責(zé)接收ActionForm的數(shù)據(jù),然后進(jìn)行處理

//規(guī)則:

//1-必須繼承org.apache.struts.action.Action

//2-重寫excute方法業(yè)務(wù)邏輯

//3-將這個(gè)類在配置文件中注冊(cè)

public?class?QueryAction?extends?Action{

public?QueryAction(){

System.out.println("QueryAction.java構(gòu)造函數(shù)運(yùn)行");

}

@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函數(shù)運(yùn)行");

// 跳轉(zhuǎn)

ActionForward?af=new?ActionForward("/result.jsp");

//設(shè)置了配置文件可以用以下方式跳轉(zhuǎn)

// ActionForward?af?=?mapping.findForward("RESULT");

//以上方式出現(xiàn)異常警告:警告:?Unable?to?find?'RESULT'?forward.

return?af;

}

}

編寫了以上的文件還未能實(shí)現(xiàn)struts的功能,要對(duì)各個(gè)文件之間的關(guān)系在struts-config.xml文件進(jìn)行配置。

配置如下:

-//Apache?Software?Foundation//DTD?Struts?Configuration?1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd">

最后,對(duì)工程文件進(jìn)行發(fā)布,啟動(dòng)tomcat,用瀏覽器測試。

現(xiàn)在,來梳理清楚。根據(jù)需求建立功能。根據(jù)要求建立form和action文件。最后對(duì)struts-config.xml文件進(jìn)行配置。

測試操作步驟:

1-進(jìn)入index.jsp導(dǎo)航頁面,點(diǎn)擊學(xué)生學(xué)籍查詢進(jìn)入了queryform.jsp頁面

2-進(jìn)入了queryform.jsp頁面,在文本框輸入學(xué)生名中的一個(gè)或兩個(gè)字進(jìn)行模糊查詢。點(diǎn)擊模糊查詢。

請(qǐng)您輸入學(xué)生姓名:

Action:指定了action要執(zhí)行的路徑method:提交的方式--post不顯示信息,get顯示信息

3-進(jìn)入了/Project02/query.do到了QueryAction.java執(zhí)行。這里為什么是到QueryAction.java文件下執(zhí)行的呢?

因?yàn)榕渲梦募呀?jīng)完成了配置。注冊(cè)Action中的path=”/query”就是query.do只是沒有了.do后綴。這里已經(jīng)指定了type類的路徑為:project02.QueryAction所以執(zhí)行QueryAction.java文件。

4-接下來的就是java文件了,大都能看懂。

總結(jié)

以上是生活随笔為你收集整理的java struts 框架_java struts 框架编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品视频网 | 少妇高潮一区二区三区四区 | 精品少妇无码av无码专区 | 夜夜嗨av色一区二区不卡 | 精品一区二区免费视频 | 中文字幕乱码人妻无码久久95 | 国产精品视频你懂的 | 中文字幕无线精品亚洲乱码一区 | 香蕉尹人网 | 日本a在线播放 | 成人午夜视频免费观看 | 法国空姐电影在线 | 婷婷在线免费 | 婷婷激情图片 | 久久久久久无码精品人妻一区二区 | 美女av网| 高清毛片aaaaaaaaa片 | 91视频大全| 国产精品电影一区 | 国产午夜手机精彩视频 | 高清av免费观看 | 91视频导航| 国产精品综合视频 | 久久久久性色av无码一区二区 | 神马影院一区二区 | 亚洲国产日韩一区无码精品久久久 | 人人干在线视频 | 制服.丝袜.亚洲.中文.综合 | 麻豆精品国产精华精华液好用吗 | 亚洲欧美国产精品专区久久 | 国产高潮视频在线观看 | 久久婷婷一区 | feel性丰满白嫩嫩hd | 激情久久中文字幕 | 少妇天堂网 | 亚洲图片视频在线 | 欧美透逼视频 | 国产一区二区久久久 | 久久一区二区三区视频 | 麻豆亚洲精品 | 国产精品美女久久久久久久久 | 久草中文网 | 又色又爽又黄无遮挡的免费视频 | 偷拍亚洲另类 | 色99999| 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 天天摸夜夜操 | 直接看毛片 | av综合导航| 精品人妻伦一区二区三区久久 | 亚洲综合成人网 | 日本少妇b | 免费av一级 | 久久久毛片 | 午夜国产一区二区 | 国产精品国语对白 | 99久久国| 熟妇人妻无乱码中文字幕真矢织江 | 乌克兰毛片 | 亚洲一级Av无码毛片久久精品 | 蜜桃av影视| 中文字幕在线播放第一页 | 亚洲手机av| 欧美日韩精品在线观看 | 欧美老女人性生活 | 午夜性 | 真实乱视频国产免费观看 | 台湾佬在线 | 四虎永久免费影院 | 大奶骚| 欧美黑大粗 | 在线观看91av | 黄色大片网 | 欧洲视频在线观看 | juliaann欧美二区三区 | 小珊的性放荡羞辱日记 | 大肉大捧一进一出好爽mba | 午夜精彩视频 | 国产精品国产精品国产专区 | 国产伦精品一区二区三区视频我 | jizz性欧美17 | 久久国产精品免费观看 | 一级日批片 | 奇米影视在线 | 日韩啊v| 欧美伦理片网站 | 人与禽性7777777| 亚洲日日操 | 男女拍拍拍网站 | 日本天堂影院 | 亚洲精品韩国 | 国产高清在线观看 | 美女黄色片网站 | 国产三级日本三级在线播放 | 国产麻豆成人 | 国产精品久久福利 | 亚洲午夜不卡 | 成人黄色一级片 | 国产精品怡红院 |