--------------------------------------------------Servlet----------------------------------
3.1 servlet基础
3.2 第一个servlet
3.3 处理客户端输入
getParameter(name) Enumeration getParameterNames()
String[] getParameterValues(name)
3.4 发送非html文档
ServletOutputStream
3.5 获取servlet配置参数 --ServletConfig对象
init(ServletConfig config) myConfig.getInitParameter("FilePath")
getServletConfig()
3.6 会话管理 --Cookie、URL重写、HttpSession对象
request.getCookies() new Cookie(name,value) response.add(cookie) cookie.setPath() cookie.setMaxAge() cookie.setValue() cookie.getAttributeNames() removeAttribute() request.getContextPath() request.getSession()
response.encodeURL(contextPath+"/url2?name=张三&age=27");
response.encodeURL("servletname")
request.getSession() session.setAttribute(name,value);
session.getAttribute(name); 浏览器一关session就结束。
3.7 servlet上下文 --ServletContext对象
ServletConfig.getServletContext()
Enumeration ServletContext.getInitParameterNames()
ServletContext.getInitParameterName(name)
ServletContext.getAttribute() .getAttributeNames()
.removeAttr... .setAttr...
一个web project可能有多个servlet,但每个servlet有各自的<init-param>:
<context-param>
<param-name>xxx
<param-value>xxx
</context-param>
<servlet>
<init-param>
<param-name>xxx
<param-value>xxx
</init-param>
... ...
</servlet>
<servlet>
... ...
</servlet>
... ...
3.8 servlet间协议 --RequestDispatcher对象
if(userID.equals("guest")&&......){
RequestDispatcher dispatcher = getServletConfig().
getServletContext().getRequestDispatcher("/mapping url")
dispatcher.forward(request.response)
}else{ RequestDispatcher dispatcher=get......;
dispatcher.forward(request.response); }
3.9 servlet Filter
import javax.servlet.Filter 、FilterChain 、FilterConfig;
public class IPFliter implements Filter{...
必须重写下面3个方法:
doFilter(ServletRequest req,ServletResponse res,FilterChain chain){
if....else{chain.doFilter(req,res);//沿过滤链传下去} }
init(FilterConfig)
destroy()
<filter>
<filter-name>xxx
<filter-class>xxx
<filter-name>YYY
<filter-class>YYY
</filter>
<filter-mapping>
<filter-name>xxx
<filter-pattern>/xxx
<filter-name>YYY
<filter-pattern>/YYY
</filter-mapping>
------------------------------------------------------------JSP---------------------------------
4.1 概述
4.2 第一个jsp
4.3 jsp脚本元素 --<% Java代码块 %>
输出表达式:<%=表达式%>(决不能以;结尾) 如:<h<%=i%>>你好</h<%=i%>>
<%@ page language="java" pageEncoding="gb2312" %>
<%@ page contentType="text/html;charset=gb2312" %>
<!-xx客户端能看到x-> <%--xxx--%>
声明变量:用于定义特定于 JSP 页面的变量,声明的变量成了 JSP 页面转 换到的 Servlet 类的成员变量,可以被该JSP页面中其他任何部 分使用。
<%!声明代码%> <%!int i=0; %>作用域为整个页面
声明方法:声明的方法在JSP页面有效,它编译成Servlet 类的成员方法。可 以由页面上所有脚本元素访问。 <%!String sayHello(){ return "Hello"; }%> <%=sayHello()%>
声明类:声明类是JSP页面对应的Servlet类的内部类,页面上所有脚本元素 都可以创建该类的对象。
<%!public class Hello{ ...}%>
<% Hello a=new Hello(false);%> <%=a.sayHello()%>
注:<%!声明%> <%脚本%>
JSP声明中定义的变量是全局的,脚本程序中定义的变量是局部的
4.4 指令元素 --<%@ 指令名 属性=“属性值” %>
page指令:属性:language import session errorPage contentType
include指令:<%include file="relative url"%>页面中嵌入页面
4.5 jsp动作组件 --<jsp:xxx>
<jsp:include page="文件名">
<jsp:forward page="网页名称">
<jsp:param name=参数名,value=值>
<jsp:include page="add.jsp">
<jsp:param name="start" value="0">
<jsp:param name="end" value="100" />
</jsp:include> 然后可以在"add.jsp"里获取参数
<jsp:forward page="wel.jsp">
<jsp:param name="A" value="a">
</jsp:forward>
<jsp:plugin> <jsp:plugin type="applet/bean" code="Circle.class" >
4.6 jsp内置对象 request response out session application
config pagecontext page exception
1.request对象:封装了客户端信息(向服务器提交请求)
通过属性对象可传递任何类型的数据:
request.setAttribute("name",arraylist) <jsp:forward page="rec.jsp">
rec.jsp: ArrayList content=(ArrayList)request.getAttribute("name")
注:setAttribute(name,value)中参数必须是可序列化的对象,基本类型no!
2.response对象:封装了服务器响应信息(向客户端发起响应)
常用方法:addCookie() addHeader(name,value) containsHeader(name)
sendError(int sc) setHeader("Refresh","5")
setContentType("Application/pdf") sendRedirect(url)
3.session对象:session.getAttribute(name)
session.setAttribute(name,value) ,value可为集合对象
4.application对象:代表运行在服务器上的Web应用程序,
相当于ServletContext,除非服务器关闭,否则一直保存下去
getAttribute(name) setAttribute(name,value) getAttributeNames()
getInitParameter(name) getRealPath()
5.out对象:浏览器需要显示的内容,文本一级的,可向客户端写一个由程序 动态生成的HTML文件
print println flush
6.exception对象:
makeError.jsp:<%@ page errorPage="yichang.jsp" %>
yichang.jsp:<%@ page isErrorPage="true" %> //必须有此page指令
常用3方法:exception.getMessage()/printStackTrace()/toString()
------------------------------------------------------JavaBean----------------------------------
5.1 java bean原理与应用
符合以下规则的任何Java类都是一个JavaBean:
1.每个可读属性,必须有public proptype getProperty(){... }
2.每个可写属性,必须有public void setProperty(proptype x){... }
3.定义一个不带参数的构造方法
5.2 javabean和jsp的结合
定义了一个javabean:Student.java
成员变量:long classno,String name,int age,boolean sex,String major
一、<jsp:useBean id="s1" class="包名.Student" scope="application"/>
[相当于在jsp页面全局Student s1=new Student();都可用s1实例了。]
其中,id:唯一标志一个javabean;(可当作类的实例看待)
class:说明javabean的类型;(即,类名)
scope:声明javabean的作用域。
二、<jsp:getProperty name="beanId" property="propertyName" />
如:<jsp:getProperty name="s1" property="name" />
等价于 <%=s1.name %>
三、<jsp:setProperty name="s1" property="classno" value="56789" />
注:<jsp:get/setProterty...都是通过javabean的get/set方法完成功能的
通过请求参数来给JavaBean的属性赋值:
input.html:<form action="param.jsp">
<input type="text" name="userName">
param.jsp:<jsp:useBean id="s2" scope="page" class="包名.Student" />
<jsp:setProperty name="s2" property="name" param="userName" />
注:用param属性,就不能用value属性了。
---------------------------------------------------------------------------------------------------- ----------------------------------
3.1 servlet基础
3.2 第一个servlet
3.3 处理客户端输入
getParameter(name) Enumeration getParameterNames()
String[] getParameterValues(name)
3.4 发送非html文档
ServletOutputStream
3.5 获取servlet配置参数 --ServletConfig对象
init(ServletConfig config) myConfig.getInitParameter("FilePath")
getServletConfig()
3.6 会话管理 --Cookie、URL重写、HttpSession对象
request.getCookies() new Cookie(name,value) response.add(cookie) cookie.setPath() cookie.setMaxAge() cookie.setValue() cookie.getAttributeNames() removeAttribute() request.getContextPath() request.getSession()
response.encodeURL(contextPath+"/url2?name=张三&age=27");
response.encodeURL("servletname")
request.getSession() session.setAttribute(name,value);
session.getAttribute(name); 浏览器一关session就结束。
3.7 servlet上下文 --ServletContext对象
ServletConfig.getServletContext()
Enumeration ServletContext.getInitParameterNames()
ServletContext.getInitParameterName(name)
ServletContext.getAttribute() .getAttributeNames()
.removeAttr... .setAttr...
一个web project可能有多个servlet,但每个servlet有各自的<init-param>:
<context-param>
<param-name>xxx
<param-value>xxx
</context-param>
<servlet>
<init-param>
<param-name>xxx
<param-value>xxx
</init-param>
... ...
</servlet>
<servlet>
... ...
</servlet>
... ...
3.8 servlet间协议 --RequestDispatcher对象
if(userID.equals("guest")&&......){
RequestDispatcher dispatcher = getServletConfig().
getServletContext().getRequestDispatcher("/mapping url")
dispatcher.forward(request.response)
}else{ RequestDispatcher dispatcher=get......;
dispatcher.forward(request.response); }
3.9 servlet Filter
import javax.servlet.Filter 、FilterChain 、FilterConfig;
public class IPFliter implements Filter{...
必须重写下面3个方法:
doFilter(ServletRequest req,ServletResponse res,FilterChain chain){
if....else{chain.doFilter(req,res);//沿过滤链传下去} }
init(FilterConfig)
destroy()
<filter>
<filter-name>xxx
<filter-class>xxx
<filter-name>YYY
<filter-class>YYY
</filter>
<filter-mapping>
<filter-name>xxx
<filter-pattern>/xxx
<filter-name>YYY
<filter-pattern>/YYY
</filter-mapping>
------------------------------------------------------------JSP---------------------------------
4.1 概述
4.2 第一个jsp
4.3 jsp脚本元素 --<% Java代码块 %>
输出表达式:<%=表达式%>(决不能以;结尾) 如:<h<%=i%>>你好</h<%=i%>>
<%@ page language="java" pageEncoding="gb2312" %>
<%@ page contentType="text/html;charset=gb2312" %>
<!-xx客户端能看到x-> <%--xxx--%>
声明变量:用于定义特定于 JSP 页面的变量,声明的变量成了 JSP 页面转 换到的 Servlet 类的成员变量,可以被该JSP页面中其他任何部 分使用。
<%!声明代码%> <%!int i=0; %>作用域为整个页面
声明方法:声明的方法在JSP页面有效,它编译成Servlet 类的成员方法。可 以由页面上所有脚本元素访问。 <%!String sayHello(){ return "Hello"; }%> <%=sayHello()%>
声明类:声明类是JSP页面对应的Servlet类的内部类,页面上所有脚本元素 都可以创建该类的对象。
<%!public class Hello{ ...}%>
<% Hello a=new Hello(false);%> <%=a.sayHello()%>
注:<%!声明%> <%脚本%>
JSP声明中定义的变量是全局的,脚本程序中定义的变量是局部的
4.4 指令元素 --<%@ 指令名 属性=“属性值” %>
page指令:属性:language import session errorPage contentType
include指令:<%include file="relative url"%>页面中嵌入页面
4.5 jsp动作组件 --<jsp:xxx>
<jsp:include page="文件名">
<jsp:forward page="网页名称">
<jsp:param name=参数名,value=值>
<jsp:include page="add.jsp">
<jsp:param name="start" value="0">
<jsp:param name="end" value="100" />
</jsp:include> 然后可以在"add.jsp"里获取参数
<jsp:forward page="wel.jsp">
<jsp:param name="A" value="a">
</jsp:forward>
<jsp:plugin> <jsp:plugin type="applet/bean" code="Circle.class" >
4.6 jsp内置对象 request response out session application
config pagecontext page exception
1.request对象:封装了客户端信息(向服务器提交请求)
通过属性对象可传递任何类型的数据:
request.setAttribute("name",arraylist) <jsp:forward page="rec.jsp">
rec.jsp: ArrayList content=(ArrayList)request.getAttribute("name")
注:setAttribute(name,value)中参数必须是可序列化的对象,基本类型no!
2.response对象:封装了服务器响应信息(向客户端发起响应)
常用方法:addCookie() addHeader(name,value) containsHeader(name)
sendError(int sc) setHeader("Refresh","5")
setContentType("Application/pdf") sendRedirect(url)
3.session对象:session.getAttribute(name)
session.setAttribute(name,value) ,value可为集合对象
4.application对象:代表运行在服务器上的Web应用程序,
相当于ServletContext,除非服务器关闭,否则一直保存下去
getAttribute(name) setAttribute(name,value) getAttributeNames()
getInitParameter(name) getRealPath()
5.out对象:浏览器需要显示的内容,文本一级的,可向客户端写一个由程序 动态生成的HTML文件
print println flush
6.exception对象:
makeError.jsp:<%@ page errorPage="yichang.jsp" %>
yichang.jsp:<%@ page isErrorPage="true" %> //必须有此page指令
常用3方法:exception.getMessage()/printStackTrace()/toString()
------------------------------------------------------JavaBean----------------------------------
5.1 java bean原理与应用
符合以下规则的任何Java类都是一个JavaBean:
1.每个可读属性,必须有public proptype getProperty(){... }
2.每个可写属性,必须有public void setProperty(proptype x){... }
3.定义一个不带参数的构造方法
5.2 javabean和jsp的结合
定义了一个javabean:Student.java
成员变量:long classno,String name,int age,boolean sex,String major
一、<jsp:useBean id="s1" class="包名.Student" scope="application"/>
[相当于在jsp页面全局Student s1=new Student();都可用s1实例了。]
其中,id:唯一标志一个javabean;(可当作类的实例看待)
class:说明javabean的类型;(即,类名)
scope:声明javabean的作用域。
二、<jsp:getProperty name="beanId" property="propertyName" />
如:<jsp:getProperty name="s1" property="name" />
等价于 <%=s1.name %>
三、<jsp:setProperty name="s1" property="classno" value="56789" />
注:<jsp:get/setProterty...都是通过javabean的get/set方法完成功能的
通过请求参数来给JavaBean的属性赋值:
input.html:<form action="param.jsp">
<input type="text" name="userName">
param.jsp:<jsp:useBean id="s2" scope="page" class="包名.Student" />
<jsp:setProperty name="s2" property="name" param="userName" />
注:用param属性,就不能用value属性了。
---------------------------------------------------------------------------------------------------- ----------------------------------
本文详细介绍了Servlet的基础知识,包括如何创建第一个Servlet、处理客户端输入、发送非HTML文档、获取Servlet配置参数、实现会话管理、理解servlet上下文、以及Servlet间协议等内容。同时,对JSP技术进行了概述,涵盖了JSP脚本元素、指令元素、动作组件、内置对象等功能,以及如何通过请求参数给JavaBean赋值。最后,文章还探讨了JavaBean与JSP的结合方式,以及如何利用JavaBean进行数据操作。
720

被折叠的 条评论
为什么被折叠?



