JSP指令:include , page , taglib
Servlet 控制器, JavaBean 模型层
System.out.println("登录IP:"+request.getRemoteAddr()+" 登录时间:"+(new java.util.Date()));
获得请求值:request.getParameter(“值”);
响应设置内容编码:response.setContentType(“text/html;charset=UTF-8”);
响应返回打印out.print:response.getWriter();
如果系提交方法为post,就设置:response.setContentType(“text/html;charset=UTF-8”);如果要用到getParameter();就要加上request.setCharacterEncoding(“UTF-8”);
如果系提交方法为get,就设置:专门针对get转换中文
new String(要转换的中文的变量.getBytes(“IS0-8859-1”),”UTF-8”);
response.setHeaher(“refresh”,”秒;URL=?地址?”)
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url ="jdbc:sqlserver://localhost:1433;DatabaseName=marco";
-----------------------------------------
<%@include file=”网址”%> txt又得Jsp又得
-----------------------------------------
<%!String name;
Class a{
}
%> 声明全局变量.可以加上类
-----------------------------------------
<%java代码%>
<%=name%>表达式或者变量名
-----------------------
<%@include page language=”java”import=”导入包”%> 可以导入多个包.以,号隔开属性:autoFlush=”true”缓存满了才用这个,buffer=”8kb”缓存大小,一般autoFlush 和buffer一起使用…errorPage=”网址”:把错误指定到里面查看,iserrorPage=”true”:如果有异常就显示到errorPage
-----------------------------------------
Enumeration e = Request.getParameterNames(); //请求所有等待请求的参数名,返回枚举类型
While(e.hasMoreElements()){ //如果有更多的元素就循环
System.out.print(e.nextElement());
}
-----------------------------------------
-----------------------------------------
String[] names = request.getParamterValues(“name”); //请求所有等待请求参数的值,返回字符串数组
for(String name : names){
System.out.print(name);
}
-----------------------------------------
-----------------------------------------
out.println(session.getId()); 会话ID
out.println(session.isNew()); 看这个会话是否是个新的会话
out.print(session.getMaxInactiveInterval()); 设置最大有效时间
request.setAttribute(“name”,username); 设置属性useName为name名字session.setAttribute(“name”,username); 设置属性useName为name名字application.setAttribute(“name”,username); 设置属性useName为name名字request.getRealPath(); //获得服务器绝对路径
request.getContextPath(); //返回项目路径名
request.getScheme(); //返回http协议
request.getServerName; //返回服务器名,等同于IP
request.getServerPort; //返回服务器端口
-------------------------------------------
//获取javaBean属性值
---------------------------------------------
------------------------------------------EL表达式
<% TestELClass te = new TestELClass();%>
<%te.setName("得未");
te.setAge(42);
te.setSex("男");
%>
<%session.setAttribute("tc",te); %>
EL:${https://www.wendangku.net/doc/a216373336.html, }
EL:${tc.age }
EL:${tc.sex }
${empty te ? '无此人':tr.teacherName }
//判断te是否为空.if为空就输出?无此人? , else输出te.属性名
${te.teacherid eq 0 ? '管理员':'普通用户' }
//判断te.teacherid属性值是否为0,if是输出管理员,else输出普通用户
以上实例化对象后先将属性赋值,然后传到会话里名为tc对象名.然后用EL表达式输出各属性注意:不能直接访问tc.getName()方法.
requestScope 来获取request.setAttribute(“userName”,”变量或值”) 的数据${requestScope . userName}
获取https://www.wendangku.net/doc/a216373336.html,erName.等同于request.getParameter();
requestScope 是EL的隐含对象,用于获取请求范围内的属性值,
sessionScope来获取session.setAttribute(“userName”,”变量或值”) 的数据
${sessionScope . userName}
获取https://www.wendangku.net/doc/a216373336.html,erName等同于session.getParameter();
sessionScope是EL的隐含对象,用于获取请求范围内的属性值,
<%request.setAttribute("name","喂"); %>
<%request.getRequestDispatcher("TestEl2.jsp").forward(request,respons e); %>
如果使用request.setAttribute,必须使用转发到另一个页面才能得到name的值
EL会依次到pageScope,requestScope,sessionScope,applicationScope中寻找,直到找到为止。如找不到返回null
-----------------------------------------------------------------------------------
JSTL
<%@taglib uri="https://www.wendangku.net/doc/a216373336.html,/jsf/core" prefix="c"%>
url:代表包路径
prefix:用的时候取名为 c
var:i.变量或表达式
step:步长
varStatus: 属性:${j.count} , ${j.index}
如果j.count 取磨2等于0,bgcolor就等于green,var属性是给test取名
否则不等于
Value是值,pattern是针对格式来输出
要导入:
<%@ taglib uri="https://www.wendangku.net/doc/a216373336.html,/jsp/jstl/functions" prefix="fn" %> ${fn:substring(book.desc,0,10)}
--------------------------- SQL ---------------------------------- IDENT_CURRENT(…表名?)用于生成表中最后一个ID, 不用setString(字段了)
conn.setAutoCommit(boolean值) :设置是否自动提交数据,然后读完数据后一起写入
https://www.wendangku.net/doc/a216373336.html,mit();提交事务
conn.rollback();如果有三个语句,有两条语句出错或者一条语句出错就全部出错。不会提交事务
--------------------------文本框取值-------------------------
多个值:
--------------------------option下拉框取值-------------------------
----------------------日期---------------------
结果
-------------------------验证email正则表达-----------------------
^是开头 ,$是结尾
var value = document.frm.txtEmail.value;
if(!/^\w+@\w+.\w+$/.test(value)){ //如果email格式不正确
frm.txtEmail.focu(); //获得焦点
frm.txtEmail.select(); //让已有的内容全选
return false;
}
return true;
------------------------取得单选值-----------------------------
function show(){
for(var i = 0; i < document.fname.sex.length ; i++){ if(document.fname.sex[i].checked){
alert(document.fname.sex[i].value);
}
}
}
----------------------取得复选------------------------------
function show(){
var chkSport =””;
for(i = 0 ; i< document.frm.chkSport.length ; i++){ if(document.frm.chkSport[i].checked){
chkSport += document.frm.chSport[i].value;
}
}
}
唱歌
跳舞
游水
爬山
onclick=”show()”
---------------------取得下拉---------------------------------
function show(val){
}
---------------------在本页查迅-------------------------
<%String userName = request.getParameter(“select”)
if(username == null){
username = “”;
}
List
Iterator
<%while(iter.hasNext()){
Emp emp = iter.next();
<%=emp.getName %>
}
%>
如果有多个提交按钮就用表单名.action=“路径”;
查询表ID:IDENT_CURRENT('orders') , 语法select IDENT_CURRENT(…表名?)
Insert into orderDT(orderid,prodid,price,amount) values(IDENT_CURRENT('orders'),?,?,?)
1.B 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 2.D 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 3. ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。 C. 在禁用Cookie时可以使用URL重写技术跟踪会话。 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。 4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 5.B EL表达式,${10 mod 3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null 6. C 自定义标签的作用是( ) A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 7.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航 8. BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制。 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。 C. service()方法响应客户端发出的请求。 D. destroy()方法释放Servlet实例。 9.B 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ public void init() throws ServletException{ } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("hello!"); } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!
第一章 Tomcat概述 一、Tomcat简介 TOMCAT是APACHE JAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVA SERVER WEB DEVELOPMENT KIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。经过多年的发展,TOMCAT不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JAVA SERVLET容器的特性,并被一些企业用于商业用途。 1、Tomcat Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP 的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat 是一种具有JSP环境的Servlet容器。Servlet容器是代替用户管理和调用Servlet的运行时外壳。 1.1 SERVLET容器 负责处理客户请求。当客户请求来到时,SERVLET容器获取请求,然后调用某个SERVLET,并把SERVLET的执行结果返回给客户。 当客户请求某个资源时,SERVLET容器使用SERVLETREQUEST对象把客户的请求信息封装起来,然后调用JAVA SERVLET API中定义的SERVLET的一些生命周期方法,完成SERVLET的执行,接着把SERVLET执行的要返回给客户的结果封装到SERVLETRESPONSE对象中,最后SERVLET容器把客户的请求发送给客户,完成为客户的一次服务过程。 1.2 TOMCAT的工作模式 1.2.1 独立的SERVLET容器 TOMCAT的默认工作模式,作为独立的SERVLET容器,是内置在WEB服务器中的一部分,是指使用基于JAVA的WEB服务器的情形。 其他两种方式是TOMCAT与其他服务器集成的方式: 1.2.2 进程内的SERVLET容器 SERVLET容器作为WEB服务器的插件和JAVA容器的实现。WEB服务器的插件在内部地址空间打
第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling
第八章 Servlet技术 一、选择题 1.下面对Servlet、Applet的那一项描述错误?()A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端 D)Servlet和Applet不可以动态从网络加载2.下面哪一项不在Servlet的工作过程中?()A)服务器将请求信息发送至Servlet B)客户端运行Applet C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端 3.下列哪一项不是Servlet中使用的方法?()A)doGet() B)doPost() C)service() D)close() 4.关于MVC架构的缺点,下列的叙述哪一项是不正确的?() A)提高了对开发人员的要求 B)代码复用率低C)增加了文件管理的难度 D)产生较多的文件5.下面哪一项对Servlet、JSP的描述错误?()
A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet 为核心技术,是Servlet技术的一个成功应用。 C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误?()A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误?()A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求
spring mvc学习教程(一)-入门实例 引言 1.MVC:Model-View-Control 框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。 2.简要概述springmvc Spring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。 一、入门实例 1. 搭建环境 在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用: org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包 org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。 org.springframework.core-3.0.5.RELEASE.jar:spring核心包 org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。 后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。 2.编写HelloWorld实例 步骤一、建立名为springMVC_01_helloword,并导入上面列出的jar 包。 步骤二、编写web.xml配置文件,代码如下:
w e b技术应用基础应用 复习 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]
填空题 1.JSP把Java作为默认的脚本语言. 2.HTTP的中文含义是超文本传输协议,它的作用是用于传输超文本标记语言 编写的文件。 3.网站一般分为三层,分别是用户界面交互层,应用程序层,数据库层。 4.Servlet的生命周期可以分为4个阶段:载入,初始化,执行,删除(销 毁。 5.在JSP文件中使用〈!————〉对HTML文本进行注释,使用〈%———— %〉符号对JSP语句进行注释。 6.JSP页面在使用Jag标记来调用一个标签文件之前,必须使用Taglib指令 标记引入该Web服务目录下的标记库。 7.在JSP中当执行了查询结果保存在Resultset对象中。 8.在JSP中,连接数据库的方式通常有两种:一种是通过JDBC驱动程序连 接;另一种是通过JDBC-ODBC桥连接。 9.HTML是超文本标记语言,作用是WWW页面内容的格式进行说明。在HTML中 加入CSS的方法主要有嵌入式样式表,内联式样式表,外联式样式表。 10.Request对象的作用是表示客户端对网页的请求,并使用HTTP协议处理 客户端的请求,一个常用的方法是getParameter();其作用为设置作为响应生成内容的类型和字符编码。 11.Reponse对象的作用是处理jsp生成的响应发送给客户端: setContentType(),其作用为设置作为响应生成内部的类型和字符编码。 12.JSP中的五个常见内建对象是out: application: request:reponse:session 13.Servlet中的4个常用方法分别是init():doGet():doPost():destor() 14.在JSP页面中显示用户信息的两种方法是()和〈%= %〉 15.Servlet中实现页面跳转的两种方法是()和().forward() 16.JSP开发网站的两种模式分为Jsp+javabean和jsp+javabean+servlet 17.一个JSP页面可由5种元素组合而成,分别是普通的HTML.标记,JSP标 记,JAVA程序片,JAVA表达式和变量和方法的声明。
Web应用开发(Java高级软件开发)工程师培训班 JSP和Servlet考试试卷 姓名:分数: 第一部分:笔试部分。 二、简答题(共5题,每题8分,共40分) 1、JSP有哪些内置对象?作用分别是什么? 2、Servlet在什么情况下调用doGet()?什么情况下调用doPost()? 3、简述PreparedStatement和Statement的区别与联系? 4、在Jcbc编程时为什么要养成经常释放连接的习惯? 5、Connection、PreparedStatement、Statement、CallableStatement、ResultSet是JDBC 编程常用的接口,请分别简述它们的作用? 第二部分:上机部分。(共60分) 1、使用JSP+Servlet+数据库的方式完成一个简易的库存商品管理系统,请自己设计数据库(1)、需求描述: ①、管理员登录 ②、列出所有库存商品的名称、规格、库存件数、单价 ③、可以对库存记录做增加、修改和删除。 (2)、页面功能设计参考
点“新加商品”按钮,跳到下页进行新加商品 删除前需要用户确认 在每行的修改链接中,链接到本行记录的修改页面 说明: 商品增加(修改)成功后,页面回到管理员查看库存页,并刷新列表数据; 所有字段均为必填项,件数、单价为数字项,提交数据之前,应进行充分的检查; 保存记录的时候,程序检测如果该件商品已有记录(即:名称、规格、单价都相同的商品),则在原有库存上累加,否则新加记录;
第一部分:笔试部分 一、简答题 1、JSP有哪些内置对象?作用分别是什么? jsp9个常用的内置对象如下 request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。 session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession 类的实例。 out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象 page对象:page对象就是指向当前JSP页面本身,有点象类中的this指针,它是https://www.wendangku.net/doc/a216373336.html,ng.Object类的实例。 application对象:application对象实现了用户间数据的共享,可存放全局变量。 它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样 在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作; 在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动 和关闭决定了application对象的生命。它是ServletContext类的实例。 exception对象:exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage 设为true,否则无法编译。他实际上是https://www.wendangku.net/doc/a216373336.html,ng.Throwable的对象。 pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的
目录 HttpClient简介 (4) 1)百科名片: (4) 2)HttpClient 的范围 (4) 3)httpClient 特性 (4) HttpClient基本功能的使用 (6) a)环境准备 (6) b)几个主要类解释 (6) c)第一个程序 (6) d)如何传递参数 (8) e)模拟表单登录 (10) f)HttpClient连接SSL (12) 1)生成KeyStore (12) 2)配置tomcat服务器支持SSL (13) 3)用浏览器访问你的应用 (15) 4)用httpClient访问https (15)
HttpClient简介 1)百科名片: HTTP 协议可能是现在Internet 上使用得最多、最重要的协议了,越来越多的Java 应用程序需要直接通过HTTP 协议来访问网络资源。虽然在JDK 的java net包中已经提供了访问HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP 协议的客户端编程工具包,并且它支持HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如Apache Jakarta 上很著名的另外两个开源项目Cactus 和HTMLUnit 都使用了HttpClient。现在HttpClient最新版本为HttpClient 4.1. 2)HttpClient 的范围 ?基于HttpCore的客户端HTTP运输实现库 ?基于经典(阻塞)I/O ?内容无关 3)httpClient 特性 ?基于标准,纯净的java语言.实现了Http1.0和Http1.1 ?以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE). ?支持HTTPS协议. ?通过Http代理建立透明的连接. ?利用CONNECT 方法通过Http代理建立隧道的https连接. ?Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos 认证方案. ?插件式的自定义认证方案. ?便携可靠的套接字工厂使它更容易的使用第三方解决方案. ?连接管理器支持多线程应用.支持设置最大连接数,同时支持设置每个主机的最大连接数.发现并关闭过期的连接. ?Automatic Cookie handling for reading Set-Cookie: headers from the server and sending them back out in a Cookie: header when appropriate. ?插件式的自定义Cookie策略. ?Request output streams to avoid buffering any content body by streaming directly to the socket to the server.
教学活动首页 基本内容 第 7 章 Java Servlet 教学目的与要求:通过本章的学习让学生了解如何用 servlet 读写文件,用 servlet 访问数据库;理解servlet 工作原理,servlet共享变量的使用;掌握编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,掌握会话管理。 教学内容: 7.1 servlet 工作原理 7.2 编译和安装 servlet 7.3 通过 JSP 页面调用 servlet 7.4 servlet共享变量 7.5 HttpServlet 类 7.6 用 servlet 读写文件 7.7 用 servlet 访问数据库 7.8 会话管理 教学基本要求: 了解:用 servlet 读写文件,用 servlet 访问数据库 理解:servlet 工作原理,servlet共享变量 掌握:编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,会话管理 教学重点教学难点: servlet 工作原理,编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,会话管理 教学方法: 教学手段:多媒体教学和计算机程序演示 教学小结:(见教学进程) 作业与思考:见课后习题 课后记载:
教学进程 第7章 Java Servlet 我们已经知道,SUN公司以Java Servlet为基础,推出了Java Server Page。JSP提供了Java Servlet的几乎所有好处,当一个客户请求一个JSP页面时,JSP引擎根据JSP页面生成一个Java文件,即一个servlet。这一章,将对servlet做一个较详细的介绍,这不仅对于深刻理解JSP有一定的帮助,而且通过学习servlet,还能使我们选择使用 JSP+javabeans+servlet的模式来开发我们的Web应用程序。 我们已经知道,用JSP支持JavaBeans这一特点,可以有效的管理页面的静态部分和页面的动态部分。另外,我们也可以在一个JSP页面中调用一个servlet完成动态数据的处理,而让JSP页面本身处理静态的信息。因此,开发一个Web应用有两种模式可以选择: (1) JSP+javabeans (2) JSP+javabeans+servlet 7.1 Servlet工作原理 servlet由支持servlet的服务器:servlet引擎,负责管理运行。当多个客户请求一个servlet时,引擎为每个客户启动一个线程而不是启动一个进程,这些线程由servlet引擎服务器来管理,与传统的CGI为每个客户启动一个进程相比较,效率要高的多。 7.1.1 Servlet 的生命周期 学习过Java 语言的人对Java Applet(Java小应用程序)都很熟悉,一个Java Applet 是java.applet.Applet类的子类,该子类的对象由客户端的浏览器负责初始化和运行。servlet的运行机制和Applet类似,只不过它运行在服务器端。一个servlet是javax.servlet 包中HttpServlet类的子类,由支持servlet的服务器完成该子类的对象,即servlet的初始化。 Servlet的生命周期主要有下列三个过程组成: (1)初始化servlet。servlet第一次被请求加载时,服务器初始化这个servlet,即创建一个servlet对象,这对象调用init方法完成必要的初始化工作。 (2)诞生的servlet对象再调用service方法响应客户的请求。 (3)当服务器关闭时,调用destroy方法,消灭servlet对象。 init方法只被调用一次,即在servlet第一次被请求加载时调用该方法。当后续的客户请求servlet服务时,Web服务将启动一个新的线程,在该线程中,servlet调用service方法响应客户的请求,也就是说,每个客户的每次请求都导致service方法被调用执行。 7.1.2 init方法 该方法是HttpServlet类中的方法,我们可以在servlet中重写这个方法。 方法描述: public void init(ServletConfig config) throws ServletException servlet第一次被请求加载时,服务器初始化一个servlet,即创建一个servlet对象,这个对象调用init方法完成必要的初始化工作。该方法在执行时,servlet引擎会把一个
jsp+servlet实例 开发环境myeclipse+tomcat6 1、先创建web project,项目名为RegisterSystem, 2、在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示:
3、在scr目录下的com.ht.servlet编写AcountBean.java文件,代码如下:package com.ht.servlet; public class AccountBean { private String username = ""; private String password = ""; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { https://www.wendangku.net/doc/a216373336.html,ername = username; } } 4、在scr目录下的com.ht.servlet编写servlet类CheckAccount.java文件,代码如下: package com.ht.servlet; import java.io.IOException;第八章Servlet技术 一、选择题 1.下面对Servlet、Applet的那一项描述错误?() A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端 D)Servlet和Applet不可以动态从网络加载 2.下面哪一项不在Servlet的工作过程中?() A)服务器将请求信息发送至Servlet B)客户端运行Applet C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端 3.下列哪一项不是Servlet中使用的方法?() A)doGet() B)doPost() C)service() D)close() 4.关于MVC架构的缺点,下列的叙述哪一项是不正确的?() A)提高了对开发人员的要求B)代码复用率低 C)增加了文件管理的难度D)产生较多的文件 5.下面哪一项对Servlet、JSP的描述错误?() A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。 C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误?() A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误?() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 8.下面哪一项对Servlet描述错误?() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 9.下面Servlet的哪个方法载入时执行,且只执行一次,负责对Servlet进行初始化。()A)service() B)init() C)doPost() D)destroy()
这几天做了一个项目,大量用到了JSP与servlet之间的传值,总结了一下 JSP与servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP. 通过对象request和session (不考虑application)完成传值. 一、JSP -> servlet JSP页面有3种方法向servlet传值:form表单、URL 、其他 ... <%...... session.setAttribute("testSession","Hello session"); reqeust.setAttribute("testRequest","Hello request"); %> click me
... 1、对于该JSP页面form表单的内容,如标签,在servlet可用request.getParameter("username");获取. 2、URL:比如这里的标签的href属性与