软件开发架构平台技术:JDBC、Servlet_第1页
软件开发架构平台技术:JDBC、Servlet_第2页
软件开发架构平台技术:JDBC、Servlet_第3页
软件开发架构平台技术:JDBC、Servlet_第4页
软件开发架构平台技术:JDBC、Servlet_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发架构平台技术CH03JSP&ServletI目录Servlet基本概念使用Servlet构建Web应用JSP基本概念JSP语法及隐式对象Web开发常用知识ModelI什么是Servlet?ServletServlet是一种独立于平台和协议的服务器端Java应用程序。Servlet由Servlet容器加载和运行,在JavaWeb环境中Servlet容器一般嵌入在Web容器中(如Tomcat)。Servlet的主要功能就是响应来自客户端的请求。javax.servlet和javax.servlet.http包为编写Servlet提供了接口和类,所有的Servlet程序都必须继承Servlet接口。Servlet生命周期Servlet的工作原理和生命周期Servlet的生命周期包括加载、实例化、处理客户端请求和移除。该生命周期由javax.servlet.Servlet接口的init、service、destroy方法来实现。public

classDemoimplementsServlet{

public

voidinit(ServletConfigconfig)throws

ServletException{ }

public

voidservice(ServletRequestreq, ServletResponseres)

throwsServletException,IOException{ }

public

voiddestroy(){ }

publicServletConfiggetServletConfig(){

return

null; }

publicStringgetServletInfo(){

return

null; }}Servlet的实现编写自己的Servlet第一个Web应用1.新建一个Web工程WebRoot是一个Web应用的根目录其中WEB-INF目录仅服务器可以访问WEB-INF下的lib目录保存导入的jar包src目录用于存放java源代码第一个Web应用Cont.2.客户端页面demo.html第一个Web应用Cont.3.编写服务端的DemoServlet第一个Web应用Cont.4.配置Servletweb.xml是Web应用的一个重要配置文件服务端的相关配置都在该文件中位于WEB-INF目录下第一个Web应用Cont.4.配置Servlet第一个Web应用Cont.5.部署,运行为什么需要JSP?JSP:JavaServerPage用Servlet来编写Web应用,导致服务端代码过于繁琐和复杂,将Servlet中的静态部分和动态部分分开来编写,同时提供类似HTML的写法,这就是JSP。JSP基本概念JSP是什么?JSP是一种建立在Servlet规范提供的功能之上的动态网页技术。JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求。JSP可以看成是运行时的Servlet。JSP基本概念Cont.JSP页面的执行过程客户端发出请求(Request:Counter.jsp);JSP容器将JSP转译成Servlet的源代码;编译Servlet,并加载到内存执行;将结果响应(Response:Output.html)至客户端。JSP语法JSP的语法构成静态内容指令表达式小脚本声明标准动作注释HTML静态文本<%@指令%><%=表达式%><%Java代码

%><%!方法或变量

%><jsp:动作名

><%----%>JSP语法Cont.JSP指令元素指令(Directives):主要用来提供整个JSP网页相关的信息及属性,如编码方式、语法等。语法规则:JSP语法中提供三种指令:page:设定整个页面的相关信息include:用于文件的动态包含taglib:用于使用第三方标签库使用范例:<%@directiveattribute=“value”%><%@

page

language="java"

import="java.util.*"

pageEncoding=“UTF-8"%>JSP语法Cont.JSP脚本元素JSP语法中提供三种脚本元素:声明:用于声明变量或方法。表达式:在网页中输出值。小脚本:Java代码。<%--声明--%><%!

inti=10;%><%!

intadd(inta,intb){

returna+b; };%><%--表达式--%><%=add(3,4)%><%="abcd".charAt(0)%><%--Scriptlets--%><%

while(i>0){ out.println(i); }%>JSP语法Cont.JSP标准动作将使用JSP进行开发过程中常用的代码块(功能)用一个符号来表示,就是标准动作。JSP2.0规范中提供8个标准动作,其中常用的有:<jsp:include><jsp:forward><jsp:useBean><jsp:setProperty><jsp:getProperty>JSP语法Cont.JSP隐式对象隐式对象是指在编写JSP页面时,不需要任何的声明和定义就可以直接使用的对象。JSP2.0规范中共提供9个隐式对象。Web之页面关联关系页面关联Web应用程序的优点之一就是能够聚合大量的信息资源,而单个的Web组件所提供的信息和功能是有限的。因此需要通过Web组件间的关联来实现信息的共享和功能的聚合。Web组件间一般有下列三种关联关系:请求转发(forward)请求重定向(redirect)包含(include)Web之页面关联关系Cont.请求转发请求转发是指将客户端的请求转发给同一个应用程序中的其他Web组件。在ServletAPI中通过RequestDispatcher接口的forward()来实现HTTP请求的转发,同时将ServletRequest和ServletResponse对象传递给目标组件。在JSP/Servlet技术,具体的操作方式有:request.getRequestDispatcher(“目标”).forward();标准动作<jsp:forward/>Web之页面关联关系Cont.请求重定向Web组件可以将请求重定向到任意的URL。重定向后即表明该次请求响应流程已完成:返回一个响应给客户端(地址栏发生改变);客户端根据响应发起一次新的请求;不能使用之前的request对象。Web之作用域Web数据的作用域Web应用中,多个Web组件通过彼此关联来实现协作,共同完成客户端的请求。这个过程中就会涉及到数据的作用域问题。Web应用中的作用域包括:页面范围(page)请求范围(request)会话范围(session)应用范围(application)Web之会话跟踪什么是会话跟踪?维持Web应用中服务端和客户端之间的HTTP连接的方法。Web应用中的常用的会话跟踪方法:URL传值隐藏域客户端保存信息(Cookie)服务端保存信息(Session)Web之HTTP状态码HTTP状态码含义200请求成功201请求成功并在服务器上创建新资源202请求被接受,但未处理完成204请求成功,但未发布任何新内容404请求的资源不可用500服务器发生内部错误501服务器不支持完成请求所需的功能503服务器过载,不能对请求进行服务ModelIModelI范例——登录ModelI范例——登录编写登录页面login.jsp

<center>欢迎登陆账户管理系统<br></center>

<form

action="loginProcess.jsp"

method="post">

<table

align="center">

<tr>

<td>用户名:</td>

<td><input

type="text"

name="username"

/></td>

</tr>

<tr>

<td>密码:</td>

<td><input

type="password"

name="password"

/></td>

</tr>

<tr

align="right">

<td

colspan="2">

<input

type="reset"

name="重置"

/>

<input

type="submit"

name="登陆"

/>

</td>

</tr>

<tr

align="right">

<td

colspan="2">

<%

StringloginMsg=(String)request.getAttribute("loginMsg");

if(loginMsg!=null){ out.println("<fontcolor='red'>"+loginMsg+"</font>"); }

%>

</td>

</tr>

</table>

</form>ModelI范例——登录编写处理页面loginProcess.jsp<html>

<head>

<title>账户管理系统</title>

</head>

<% Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password");

Accountaccount=newAccount(); account.setUsername(username); account.setPassword(password); AccountDAOaccountDAO=newAccountDAO(); account=accountDAO.getAccountByUsernameAndPassword(account);

if(account==null)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论