尚学堂科技王勇讲Struts1.docx

上传人:b****5 文档编号:7292763 上传时间:2023-01-22 格式:DOCX 页数:55 大小:300.52KB
下载 相关 举报
尚学堂科技王勇讲Struts1.docx_第1页
第1页 / 共55页
尚学堂科技王勇讲Struts1.docx_第2页
第2页 / 共55页
尚学堂科技王勇讲Struts1.docx_第3页
第3页 / 共55页
尚学堂科技王勇讲Struts1.docx_第4页
第4页 / 共55页
尚学堂科技王勇讲Struts1.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

尚学堂科技王勇讲Struts1.docx

《尚学堂科技王勇讲Struts1.docx》由会员分享,可在线阅读,更多相关《尚学堂科技王勇讲Struts1.docx(55页珍藏版)》请在冰豆网上搜索。

尚学堂科技王勇讲Struts1.docx

尚学堂科技王勇讲Struts1

Struts

多层架构及MVC

领域模型_模式_框架简介

Sturts+Hibernate+Spring

Struts是一个MVC框架

Hibernate是做持久层的(DRP中dao这块就不要了sql语句就不怎么写了)

Spring提供一些基础性的服务,我们在DRP中,对象的管理,事物。

几个概念:

DomainModel(领域模型),DDD(领域驱动设计),例如:

银行领域模型(是一个核心)

领域模型从角色上分有五个:

实体、值对象、工厂、仓储、服务。

平行模型:

只有状态没有行为,

Pattern(模式)

Framework(框架)

多层框架概述

我们的目标是:

能够熟练运用当前流行的java开源框架:

Struts、Hibernate以及Spring来构建灵活、易于扩展的多层Web应用程序。

C/S:

以数据库为中心

B/S:

多层架构才是真正的目的

B/S:

多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现松耦合(解耦合)和良好的可维护性。

呈现层(UILayer/PresentationLayer)

Struts

业务逻辑层(BusinessLayer)

Spring

持久化层(PersistenceLayer)

hibernate

Struts

深入理解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请求页面



b.jsp

请求到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("username");

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;

importjava.util.List;

publicclassUserManager{

publicListfindUserByName(Stringname){

ListuserList=newArrayList();

userList.add("数据一");

userList.add("数据二");

returnuserList;

}

}

在web.xml中配置servlet信息

TestServlet

com.bjsxt.servlet.TestServlet

TestServlet

/servlet/testServlet

转发到c.jsp中获取信息

<%

ListuserList=(List)request.getAttribute("userlist");

out.println(userList);

%>

请求说明

MVC

MVC框架它分两种:

一种是面向请求驱动的(Struts1.x,Struts2.x,WebWork);

一种是面向事件驱动的(JSF)。

MVC实现原理

简单MVC模式小例子

搭建完后的格式

index.jsp发送请求页面

测试Servlet







error.jsp请求失败页面

数据出错!

seccess.jsp请求成功页面

<%@pageimport="java.util.*"%>

<%

ListuserList=(List)request.getAttribute("userlist");

out.println(userList);

%>

Web.xml配置文件

xmlversion="1.0"encoding="UTF-8"?

>

xsi="http:

//www.w3.org/2001/XMLSchema-instance"xmlns="xmlns:

web="xsi:

schemaLocation="id="WebApp_ID"version="2.5">

test_servlet2

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

TestServlet

com.bjsxt.servlet.TestServlet

TestServlet

*.do

action_config.xml配置文件

xmlversion="1.0"encoding="UTF-8"?

>

Action.java接口Action

packagecom.bjsxt.servlet.action;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicinterfaceAction{

publicStringservice(HttpServletRequestrequest,HttpServletResponseresponse);

}

AddUserAction.java实现Action接口的添加类

packagecom.bjsxt.servlet.action;

importjava.util.List;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.bjsxt.servlet.UserManager;

publicclassAddUserActionimplementsAction{

@Override

publicStringservice(HttpServletRequestrequest,

HttpServletResponseresponse){

//取得表单数据

Stringusername=request.getParameter("username");

UserManageruserManager=newUserManager();

ListuserList=userManager.addUser(username);

request.setAttribute("userlist",userList);

return"/seccess.jsp";

}

}

ModifyUserAction.java实现Action接口的修改类

packagecom.bjsxt.servlet.action;

importjava.util.List;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.bjsxt.servlet.UserManager;

publicclassModifyUserActionimplementsAction{

@Override

publicStringservice(HttpServletRequestrequest,

HttpServletResponseresponse){

//取得表单数据

Stringusername=request.getParameter("username");

UserManageruserManager=newUserManager();

ListuserList=userManager.modifyUser(username);

request.setAttribute("userlist",userList);

return"/seccess.jsp";

}

}

QueryUserAction.java实现Action接口的查询类

packagecom.bjsxt.servlet.action;

importjava.util.List;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.bjsxt.servlet.UserManager;

publicclassQueryUserActionimplementsAction{

@Override

publicStringservice(HttpServletRequestrequest,

HttpServletResponseresponse){

//取得表单数据

Stringusername=request.getParameter("username");

UserManageruserManager=newUserManager();

ListuserList=userManager.findUserByName(username);

request.setAttribute("userlist",userList);

return"/seccess.jsp";

}

}

UserManameger.java根据页面信息取得数据

packagecom.bjsxt.servlet;

importjava.util.ArrayList;

importjava.util.List;

publicclassUserManager{

//添加用户

publicListaddUser(Stringname){

ListuserList=newArrayList();

userList.add("添加数据一");

userList.add("添加数据二");

returnuserList;

}

//查找用户

publicListfindUserByName(Stringname){

ListuserList=newArrayList();

userList.add("查找数据一");

userList.add("查找数据二");

returnuserList;

}

//修改用户

publicListmodifyUser(Stringname){

ListuserList=newArrayList();

userList.add("修改数据一");

userList.add("修改数据二");

returnuserList;

}

}

TestXML.java取得配置文件action_config.xml文件

packagecom.bjsxt.servlet;

importjava.io.IOException;

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){

Classc=TestXML.class;

Stringfilename=c.getResource("").getPath().toString();

filename=filename.substring(0,filename.indexOf("classes")+"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){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}

NodeListlist=document.getElementsByTagName("action");

for(inti=0;i

Elementtag=(Element)list.item(i);

Stringpath=tag.getAttribute("path");

if(uiPath.equals(path)){

strClass=tag.getAttribute("class");

}

}

returnstrClass;

}

}

TestServlet.java总体进分发及转向

packagecom.bjsxt.servlet;

importjava.io.IOException;

importjava.lang.reflect.InvocationTargetException;

importjava.lang.reflect.Method;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassTestServletextendsHttpServlet{

privatestaticfinallongserialVersionUID=1L;

protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

StringforwardPath="/error.jsp";

StringcurrentURI=request.getRequestURI();

//System.out.println("currentURI"+currentURI);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1