尚学堂科技王勇讲Struts1Word格式.docx
《尚学堂科技王勇讲Struts1Word格式.docx》由会员分享,可在线阅读,更多相关《尚学堂科技王勇讲Struts1Word格式.docx(55页珍藏版)》请在冰豆网上搜索。
hibernate
深入理解MVC模式
掌握Struts体系架构
掌握Struts开发流程
熟练掌握Struts的配置方法
从Servlet说开去
什么是Servlet?
如何编写Servlet?
如何映射Servlet?
相对路径与绝对路径的基本概念
如何基于Servlet编程?
JavaBeans
JavaBean是一种java类
JavaBean必须是具体的和公共的,并且具备无参构造器
JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露称为属性
JavaBean提供两种方法来访问Bean的内部状态:
访问器(getters)用来读JavaBenan状态-以小写get前缀开始,后跟属性名,属性名的第一个字母必须大写,返回值必须匹配相应修改器的方法的参数;
如果访问器返回boolean值,则使用is前缀开始,后跟属性名,属性名第一个字母必须大写。
修改器(setters)用来修改JavaBean状态,以小写set前缀开始,后跟属性名,属性名的第一个字线必须大写,修改器的返回值通常为void。
Servlet的简单使用
Index.jsp请求页面
<
body>
<
formaction="
servlet/testServlet"
method="
post"
>
<
inputtype="
text"
name="
username"
br>
submit"
value="
查询"
/form>
ahref="
a/b/b.jsp"
>
b.jsp<
/a>
/body>
请求到TestServlet.java中
importjava.io.IOException;
importjava.util.List;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassTestServletextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//取得表单数据
Stringusername=request.getParameter("
);
UserManageruserManager=newUserManager();
ListuserList=userManager.findUserByName(username);
request.setAttribute("
userlist"
userList);
//转向到c.jsp,取出list中的数据
request.getRequestDispatcher("
/a/b/c/c.jsp"
).forward(request,response);
return;
}
}
根据表单数据从UserManager.java中获取数据
importjava.util.ArrayList;
publicclassUserManager{
publicListfindUserByName(Stringname){
ListuserList=newArrayList();
userList.add("
数据一"
数据二"
returnuserList;
在web.xml中配置servlet信息
servlet>
servlet-name>
TestServlet<
/servlet-name>
servlet-class>
com.bjsxt.servlet.TestServlet<
/servlet-class>
/servlet>
servlet-mapping>
url-pattern>
/servlet/testServlet<
/url-pattern>
/servlet-mapping>
转发到c.jsp中获取信息
%
ListuserList=(List)request.getAttribute("
out.println(userList);
%>
请求说明
MVC
MVC框架它分两种:
一种是面向请求驱动的(Struts1.x,Struts2.x,WebWork);
一种是面向事件驱动的(JSF)。
MVC实现原理
简单MVC模式小例子
搭建完后的格式
index.jsp发送请求页面
h1>
测试Servlet<
/h1>
hr>
user/queryUser.do"
user/addUser.do"
添加"
user/modifyUser.do"
修改"
error.jsp请求失败页面
数据出错!
!
seccess.jsp请求成功页面
%@pageimport="
java.util.*"
List<
String>
userList=(List<
)request.getAttribute("
Web.xml配置文件
?
xmlversion="
1.0"
encoding="
UTF-8"
web-appxmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
xmlns="
xmlns:
web="
xsi:
schemaLocation="
id="
WebApp_ID"
version="
2.5"
display-name>
test_servlet2<
/display-name>
welcome-file-list>
welcome-file>
index.html<
/welcome-file>
index.htm<
index.jsp<
default.html<
default.htm<
default.jsp<
/welcome-file-list>
*.do<
/web-app>
action_config.xml配置文件
action_config>
actionpath="
/user/addUser"
class="
com.bjsxt.servlet.action.AddUserAction"
success="
success.jsp"
/action>
/user/queryUser"
com.bjsxt.servlet.action.QueryUserAction"
/user/modifyUser"
com.bjsxt.servlet.action.ModifyUserAction"
/action_config>
Action.java接口Action
packagecom.bjsxt.servlet.action;
publicinterfaceAction{
publicStringservice(HttpServletRequestrequest,HttpServletResponseresponse);
AddUserAction.java实现Action接口的添加类
importcom.bjsxt.servlet.UserManager;
publicclassAddUserActionimplementsAction{
@Override
publicStringservice(HttpServletRequestrequest,
HttpServletResponseresponse){
List<
userList=userManager.addUser(username);
return"
/seccess.jsp"
;
ModifyUserAction.java实现Action接口的修改类
publicclassModifyUserActionimplementsAction{
userList=userManager.modifyUser(username);
QueryUserAction.java实现Action接口的查询类
publicclassQueryUserActionimplementsAction{
userList=userManager.findUserByName(username);
UserManameger.java根据页面信息取得数据
packagecom.bjsxt.servlet;
//添加用户
publicList<
addUser(Stringname){
userList=newArrayList<
();
添加数据一"
添加数据二"
}
//查找用户
findUserByName(Stringname){
查找数据一"
查找数据二"
//修改用户
modifyUser(Stringname){
修改数据一"
修改数据二"
TestXML.java取得配置文件action_config.xml文件
importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importjavax.xml.parsers.ParserConfigurationException;
importorg.w3c.dom.Document;
importorg.w3c.dom.Element;
importorg.w3c.dom.NodeList;
importorg.xml.sax.SAXException;
publicclassTestXML{
publicstaticStringgetStr(StringuiPath){
Class<
TestXML>
c=TestXML.class;
Stringfilename=c.getResource("
"
).getPath().toString();
filename=filename.substring(0,filename.indexOf("
classes"
)+"
.length()+1)+"
action_config.xml"
StringstrClass="
Documentdocument=null;
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
DocumentBuilderbuilder;
try{
builder=factory.newDocumentBuilder();
document=builder.parse(filename);
}catch(ParserConfigurationExceptione){
e.printStackTrace();
}catch(SAXExceptione){
}catch(IOExceptione){
}
NodeListlist=document.getElementsByTagName("
action"
for(inti=0;
i<
list.getLength();
i++){
Elementtag=(Element)list.item(i);
Stringpath=tag.getAttribute("
path"
if(uiPath.equals(path)){
strClass=tag.getAttribute("
class"
}
returnstrClass;
TestServlet.java总体进分发及转向
importjava.lang.reflect.InvocationTargetException;
importjava.lang.reflect.Method;
protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
StringforwardPath="
/error.jsp"
StringcurrentURI=request.getRequestURI();
//System.out.println("
currentURI"
+currentURI);