Servlet简介
Servlet是服务器小应用程序
用来完成B/S架构下,客户端请求的响应处理
平台独立,性能优良,能以线程方式运行
Servlet API为Servlet提供了统一的编程接口
Servlet一般在容器中运行
常见的Servlet容器
Tomcat
Jetty / Resin
//创建servlet
1.XXX extends HttpServlet
2.Override doGet doPost
3.copy to WEB-INF/classes
4.web.xml
(1)<servlet><servlet-name><servlet-class></servlet>
(2)<servlet-mapping><url-pattern> /
5.restart server
用于HTTP的Servlet编程都通过继承 javax.servlet.http.HttpServlet
//JSP---Java Server Pages
拥有servlet的特性与优点(本身就是一个servlet)
直接在HTML中内嵌JSP代码
基本语法:
--------------<%! %>成员变量 成员方法
说明:在此声明的变量、方法都会被保留成唯一的一份,直到JSP程序停止执行
例:
<%!
int i;
public void setName(){… …}
%>
--------------<%程序代码区%>
可以放入任何的Java程序代码
例:
<%
这里声明的变量相当于是Service里面的局部变量
for (int i=0;i<10,i++)
{
… …
}
%>
------------<%=… …%>----------------println()
=后面必须是字符串变量或者可以被转换成字符串的表达式
不需要以;结束
只有一行就是输出
例:
<%=“hello world”%>
<%=i+1%>
<%=request.getParameter(“name”)%>
----------<%@---- %>
里面是导包或编辑设置
<jsp:forward>与response.sendRedirect的区别
--------------------<jsp:forward>-----------------
使用同一个request的请求及其数据,是逻辑上的相同
forward后的语句不会继续发送给客户端
速度快
服务器内部转换,
可以传参数
-----------------response.sendRedirect-------------
是不同的request
send后的语句会继续执行,除非return
速度慢
需要到客户端的往返,可以转到任何页面
可以传参数,直接写在url后面
Bean实体类的构成
(1)无参构造
(2)全参构造
(3)getter()和setter()
(4)toString()
----------------request--------------------
request内置对象表示的是调用JSP页面的请求。通常,request对象是javax.servlet.http.HttpServletRequest接口的一个实例
典型应用:通过request.getParameter(“paramName”)可以获得Form提交过来的参数值
可以用此对象取得请求的Header、信息(如浏览器版本、语言和编码等)、请求的方式(get/post)、请求的参数名称、参数值、客户端的主机名称等
常用方法:
getMethod():返回客户端向服务器端传送数据的方法
getParameter(String paramName):返回客户端向服务器端传送的参数值,该参数由paramName指定
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举类型数据(Enumeration)
---------------response-------------------
表示的是返回给客户端的响应
是javax.servlethttp.HttpServletResponse接口的一个实例
servlet和jsp的通信
从JSP调用Servlet可用<jsp:forward>请求信息自动传递到Servlet
或者通过sendRedirect
从Servlet调用JSP使用
RequestDispatcher接口的forward(req, res)方法
请求信息需要显式传递(在req、res参数中)
或者通过sendRedirect