资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 简单的Web应用实例,目标,对Web应用有初步的认识; 掌握Web应用的文档结构; 掌握Web应用的基本配置; 掌握JSP的运行原理; 掌握Servlet的运行原理; 了解MVC模式。,主要内容,实例演示 Web应用文档结构 配置端口、应用、默认应用和欢迎文件 Servlet运行原理 JSP运行原理 MVC模式,2.2 实例:登录,2.2.1 功能演示 2.2.2 创建Web应用 2.2.3 编写web.xml 2.2.4 页面文件 2.2.5 模型JavaBean 2.2.6 Servlet控制器 2.2.7 运行测试,2.2.1 功能演示,实例结构图,文件、分层及调用关系,2.2.2 创建Web应用,创建文件夹bookstore 创建一个子文件夹WEB-INF WEB-INF中创建web.xml WEB-INF中创建classes文件夹和lib文件夹 JSP文件和HTML文件直接放在bookstore下面。,2.2.3 编写web.xml,2.2.4 页面文件,登录界面login.jsp 登录成功的界面success.jsp 登录失败的界面failure.jsp注:界面代码参见教材2.2.3节。,2.2.5 模型JavaBean,代码参见书上2.2.5节。,2.2.6 Servlet控制器,代码参见教材2.2.6节。 编译时需要在classpath中加入tomcat中lib目录下的jsp-api.jar和servlet-api.jar。,2.2.7运行测试,先启动服务器 访问程序http:/127.0.0.1:8080/bookstore/login.jsp http表示协议 127.0.0.1表示主机IP地址,也可以写主机名字,8080表示服务的端口 bookstore表示Web应用 login.jsp是要访问的资源。,2.2.8 说明,0. URL中的字符大小写敏感1. 修改JSP页面和应用下的Web.xml文件不需要重启服务器2. 修改Java类和Server.xml文件需要重启服务器,3. 各个web组件的关联与信息传递,JSP页面到对应处理的Servlet JSP页面中的action=“login”属性 web.xml中中的Servlet类获取JSP页面信息 JSP页面form元素(如文本框)的name属性 HttpServletRequest类的getParameter(“name属性值”)Servlet类中调用JavaBean提供功能 依据Java对象方法调用,3. 各个web组件的关联与信息传递,Servlet类向JSP页面传递信息 Servlet类中使用HttpSession的setAttribute(属性名)方法 JSP页面中使用隐藏对象$sessionScope.属性名Servlet类转向显示信息的JSP页面 使用RequestDispachter对象,给出应用目录下的页面地址JSP页面间的跳转 使用超链接方式给出应用目录下的页面地址,2.3 Web应用文档结构,使用MyEclipse构建Java Web项目,0. 启动,选择workspace目录 1.设置Tomcat,点 ,Configure Server, Tomcat-Tomcat 7.X,启动 -Tomcat7.x-Start 2. 创建Java web项目,new-Web Project,观察Root根目录 3. 创建Java Web项目并部署 ,validation问题 4. 简单调试,在Servlet设断点,修改UserBean(不用重启服务器),使用MyEclipse构建Java Web项目,创建方法: 1. 使用new Web project创建Java Web项目 2. 在Web项目对应目录上点右键new-可以选择使用向导创建JSP与Servlet,JSP页面放在Web root里面,创建好Servlet后可以在web.xml中自动生成相应配置信息 3. 同创建普通类一样创建JavaBean,http:/blog.csdn.net/javaeeteacher,2.4 配置端口、应用、默认应用和欢迎文件,2.4.1 配置端口 2.4.2 配置应用 2.4.3 配置欢迎文件,2.4.1 配置端口,在server.xml中修改(位于tomcat安装目录的conf文件夹中),2.4.2 配置应用,在server.xml中的之前提添加:如果想设置应用为默认应用,设置path即可,2.4.3 配置欢迎文件,访问应用的时候,如果不输入文件名,系统会访问欢迎文件 欢迎文件在每个应用的配置文件web.xml中配置,可以有多个,2.5 Servlet运行原理,2.5 Servlet运行原理,1. Servlet生命周期中,同一个Servlet可以为多个客户端服务 2. Web应用被卸载或者服务器被关闭时,系统卸载Servlet,调用其destroy()方法释放资源。 3. Servlet加载方式有两种: 第一次请求时加载 服务器启动时加载,web.xml的标签添加:1,Servlet的主要功能,从JSP(输入)获取请求的信息 对信息进行验证、转换 调用业务逻辑方法 根据执行的结果进行处理,2.6 JSP运行原理,2.6 JSP运行原理,1. JSP本质上是一种Servlet的变形简化技术,使用JSP只要程序员完成需要输出到客户端的内容,JSP页面转换成类似Servlet的功能类,由JSP容器完成,JSP页面中的HTML信息转换成生成类中out.println(“XXXX”)形式的代码 2. Servlet是一个完整的Java类,其中有doXXX方法,也有service()方法,用于生成客户端的响应内容 3. Servlet中的service()方法的作用,等同于JSP生成类的_jspService(),这些方法都需要两个参数HttpServletRequest,HttpServletResponse,有该方法的类可以接受客户端的请求,2.7 MVC模式,MVC模式是一种软件开发模式 M是Model,表示模型,主要完成系统的逻辑处理。 V是View,表示视图,主要完成与用户的交互。 C是Controller,表示控制器,主要建立模型与视图之间的关联。,2.7 MVC模式,2.7.1 分层 2.7.2 传值 2.7.3 MVC模式在Java Web中的应用 2.7.4 如何实现MVC模式,http:/blog.csdn.net/javaeeteacher,2.7.1 分层,2.7.2 传值,视图层与控制层之间值的传递 从视图层到控制层 通过表单 在请求字符串之后使用问号加参数的方式(例如,http:/127.0.0.1:8080/bookstore/login?userid=zhangsan&userpass=lisi)。 信息被封装到request对象中,要获取传递的信息通过request的getParameter方法和getParameterValues方法。 从控制层到视图层,2.7.2 传值,视图层与控制层之间值的传递 从视图层到控制层 从控制层到视图层 1. 使用request对象,控制层把信息保存在request中 request.setAttribute(“user“,user); 视图通过表达式语言获取:姓名:$user.username或密码:$user.userpass 2. 使用session对象,控制层把信息保存在session中 session.setAttribute(“userid“,userid); 视图通过表达式语言获取$sessionScope.userid,2.7.2 传值,控制层与模型层之间值的传递 从控制层向模型层传递信息: 在调用构造方法的时候传递; 调用专门的初始化方法赋值或者通过调用setter方法赋值; 通过业务方法的参数传递; 从模型层向控制层传递信息 通过方法的返回值。,2.7.4 如何实现MVC模式,采用MVC模式,所有问题的考虑方式基本完全相同,分下面3步。 任何一个功能都是先从用户的角度考虑: 用户如何提交请求 系统如何向用户展示结果。 主要使用JSP页面来完成,可以根据输入输出功能所涉及的元素设计JSP页面。,2.7.4 如何实现MVC模式,考虑功能如何实现,所有的功能最后都是通过方法来实现。 考虑这个方法应该属于已经存在的某个模型的方法,还是不属于任何已经存在的模型,对于前者只需要在原有模型中增加方法即可,对于后者需要创建新的模型; 考虑这个方法的定义,包括方法的名字、参数、返回值、异常和执行过程。 这个过程属于MVC模式中M部分的设计。,2.7.4 如何实现MVC模式,(C部分的设计)最后考虑输入界面、功能和输出界面之间如何关联: 需要从输入界面获取哪些信息; 需要调用JavaBean的哪个方法; 是否需要把模型执行的结果传递给显示界面 根据模型的执行结果选择界面对用户进行响应。,2.7.5 JavaEE应用的分层模型,表现层,MVC的控制器层,显示,业务逻辑层,提供业务逻辑实现,DAO层,提供数据访问服务,Domain Object层,封装,数据库,提供持久化服务,2.7.5 JavaEE应用的分层模型,表现层组件:主要负责收集用户输入数据,或者向客户显示系统状态。最常用的表现层技术为JSP,还可由Velocity、FreeMarker和Tapestry等技术完成,JSF、Struts都有自己的表现层标签库。严格的Java EE应用中,会将底层应用的状态封装成Java Bean集,这些Java Bean集被传送到JSP页面,从而使JSP页面显示底层应用的状态。这些Java Bean组件有时被称作DTO(Data Transfer Object,数据传输对象)。 控制器组件:对于Java EE的MVC框架,框架提供一个前端核心控制器,其负责拦截用户请求,并将请求转发给编写的控制器组件。而这些编写的控制器负责调用业务逻辑方法,处理用户请求。,2.7.5 JavaEE应用的分层模型,业务逻辑组件:系统的核心组件,实现系统的业务逻辑。通常,一个业务逻辑方法对应一次用户操作,一个业务逻辑方法是一个整体,因此需要增加其事务性。业务逻辑方法仅仅负责实现业务逻辑,不负责实现数据库访问。 DAO(Data Access Object)组件:被称作数据访问对象,该类型对象缺乏变化,每个DAO组件提供Domain Object对象基本的CRUD操作。采用不同的持久层技术,DAO对象会完全不同。通过为每个DAO提供接口,实现面向DAO接口变成,实现了业务逻辑组件与DAO组件的解偶。 领域对象(Domain Object)组件:抽象了系统的对象模型,其状态保存在数据库中,每个领域对象通常对应一个或多个数据表,领域对象提供对数据纪录的访问方式。,小结,本章首先介绍了JDK和Tomcat的安装。然后通过一个登录实例介绍了Web应用的基本开发过程,通过对实例进行分析介绍了Web应用的文档结构、JSP和Servlet的运行原理,以及如何对Web应用进行配置,最后对MVC模型,Java EE分层模型进行了介绍。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号