-
@JavaBean---Model1
Model1分为三层:
1.界面层:由JSP页面进行与客户端浏览器的交互,可以直接调用JavaBeans
2.业务逻辑层:由JavaBeans进行处理业务逻辑,封装数据,并与数据库层进行交互
3.数据库层:底层数据库,可被javaBeans访问
避免了JSP页面直接进行业务逻辑处理所带来的维护性,扩展性差的弱点.体现了分层设计的思想。查看全部 -
@JavaBean---四个作用域范围
说明:使用useBean的scope属性可以用来指定javabean的作用范围。
1.page(仅在当前页面有效)
2.request(可以通过HttpRequest.getAttribute()方法获取javabean对象)
3.session(可以通过HttpSession.getAttribute()方法获取javabean对象)
4.application(可以通过ServletContext.getAttribute()方法获取javabean对象)查看全部 -
javabean作用域范围
查看全部 -
@JavaBean---创建JavaBean的方法
一、像使用普通java类一样,创建javabean实例
1.创建一个web project项目。
2.在src文件下,创建一个包,在包中创建一个类,满足设计原则即可
3.在index.jsp页面中通过import导入之前创建的类(import="包名.类名")
4.通过使用new创建Javabean实例(创建对象)
5.使用set方法赋值
6.使用get方法取值二、在Jsp页面中通常使用jsp动作标签使用javabean
1.useBeans动作--<jsp:useBeans>
作用:在jsp页面中实例化或者在指定范围内使用javabean。
语法:<jsp:useBean id="标示符" class="java类名" scope="作用范围" />2.setProperty动作--<jsp:setProperty>
作用:给已经实例化的Javabean对象的属性赋值,一共有四种形式。
【根据表单自动匹配所有属性】
<jsp:setProperty name="JavaBean实例名" property="*" />
【根据表单自动匹配部分属性】
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" />
【手工设置】
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" value="BeanValue" />
【跟request参数关联】
<jsp:setProperty name="JavaBean实例名" property="propertyName" param="request对象中的参数名" />
3.getProperty动作--<jsp:getProperty>
作用:获取指定Javabean对象的属性值。
语法:<jsp:getProperty name="JavaBean实例名" property="属性名" />查看全部 -
@JSP---Jsp动作
1.JSP动作元素(action element)
JSP动作元素为请求处理阶段提供信息。动作元素遵循XML语法,有一个包含元素名的开始标签,可以有属性,可选的内容、与开始标签匹配的结束标签。
2.JSP动作元素种类
· 第一类是与存取JavaBean有关,包括:
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
· 第二类是JSP1.2开始有的基本元素,包括:
<jsp:include> <jsp:forward> <jsp:param> <jsp:plugin><jsp:params> <jsp:fallback>
· 第三类是JSP2.0新增的动作元素,主要与JSP Document有关,包括:
<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression> <jsp:text> <jsp:output>
· 第四类是JSP2.0新增的动作元素,主要是用来动态生成XML元素标签的值,包括:
<jsp:attribute> <jsp:body> <jsp:element>
· 第五类是JSP2.0新增的动作元素,主要是用在Tag File中,包括:
<jsp:invoke> <jsp:dobody>查看全部 -
@JavaBean---设计原则
1.公有类
2.无参的公有构造方法
3.属性私有
4.getter和setter方法查看全部 -
@JSP---九大内置对象之 exception
execption对象:
exception对象是一个异常对象,当一个页面在运行过程中规发生了异常,就会产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象。常用方法:
· String getMessage() 返回描述异常的消息
· String toString() 返回关于异常的简短描述消息
· void printStackTrace() 显示异常及其栈轨迹
· Throwable FillInStackTrace() 重写异常的执行栈轨迹查看全部 -
@JSP---九大内置对象之 config
config对象:
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的相关信息(通过传递一个ServletContext对象)常用方法:
· ServletContext getServletContext()返回含有服务器相关信息的ServletContext对象
· String getInitParameter(String name)返回初始化参数的值
· Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的枚举查看全部 -
@JSP---九大内置对象之 pageContext
pageContext对象:
1.pageContext对象提供了对jsp页面内所有的对象及名字空间的访问。
2.pageContext对象可以访问到本页所有的Session,也可以区本页面所在的application的某一属性值。
3.pageContext对象相当于页面中所有功能的集大成者。
4.pageContext对象的本类名也叫pageContext。常用方法:
· jspWriter getOut() 返回当前客户端响应被使用的jspWriter流(out)。
· HttpSession getSession() 返回当前页中的HttpSession对象(Session)。
· Object getPage() 返回当前页的Object对象(page)。
· ServletRequest getRequest() 返回当前页的ServletRequest对象(Request)。
· ServletResponse getResponse() 返回当前页的ServletResponse对像(Response)。
· void setAttribute(String name,Object Attribute)设置属性及属性值
· Object getAttribute(String name,int scope)在指定范围内去属性的值。
· int getAttribute(String name)返回某属性的作用范围。
· void forward(String relativeURLPath)是当前页重导到另一页面。
· void include(String relativeURLPath)在当前位置包含另一文件。查看全部 -
@JSP---九大内置对象之 page
page对象:
page对象就是指向当前jsp页面本身,有点像类中的this指针,它是Java.lang.object类的实例。常用方法:
· class getClass()返回此Object的类。
· int hashCode()返回Object的hash码。
· Boolean equals(Object obj)判断此Object是否与指定的Object对象相等。
· void copy(Object obj)把此Object拷贝到指定的Object对象中。
· Object clone()克隆此object对象。
· String toString()把Object对象转换成String类的对象。
· void notify()唤醒一个等待的线程。
· void notifyAll()唤醒所有等待的线程。
· void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒。
· void wait()使一个线程处于等待直到被唤醒。查看全部 -
@JSP---九大内置对象之 application
application对象:
1.实现了用户间数据的共享,可存放全局变量。(类似静态对象)
2.开始于服务器启动,终止于服务器的关闭(生命周期)
3.在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
4.在任何地方对application对象属性进行操作,都将影响到其他用户对此的访问
5.application对象是ServletContext类的实例常用方法:
· public void setAttribute(String name, Object value)
· public Object getAttribute(String name) 若无对象绑定在该名称,则返回null
· Enumeration getAttributeNames() 返回所有可用属性名的枚举
· String getServerInfo() 返回JSP(SERVLET)引擎名及版本号查看全部 -
@JSP---session的生命周期
1.创建
当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验。2.活动
a.某次会话当中通过超链接打开的新页面属于同一次会话
b.只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话
c.除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话
PS:注意原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验3.销毁:三种方式
a.调用了session.invalidate()方法
b.Session过期(超时)
c.服务器重新启动4.设置超时的方法(默认30分钟)
a.session.setMaxInactiveInterval(时间); //单位是秒
b.在web.xml配置
<session-config>
<session-timeout>10</session-timeout> //单位是分钟
</session-config>查看全部 -
@JSP---九大内置对象之 session
session对象:
1.session对象是一个jsp内置对象(在访问jsp页面时自动创建)。
2.session对象在第一个jsp页面被装载时自动创建,完成会话管理。
3.从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,称为一个会话。
4.当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。
5.session对象是HttpSession类的实例。
常用方法:
· long getCreationTime() : 返回session的创建时间;
· public String getId() : 返回session的唯一ID号(该ID在session生成时,由JSP引擎创建)
· public Object setAttribute(String name,Object value) : 按照键值对的方式在该session会话中保存一个属性(该属性是一个对象类型)
· public Object getAttribute(String name) : 返回指定名称的属性的值(如果该名称的属性不存在,则返回null)
· String[] getValueNames() : 返回一个(包含在此session中所有可用属性)的数组。
· int getMaxInactiveInterval() : 返回一个时间,该时间表示当前session间隔多少时间之后会失效(单位:秒)。查看全部 -
@JSP---请求转发与请求重定向
请求重定向:客户端行为,两次请求,请求的对象不会保存,URL改变。
response.sendRedirect("index.jsp");请求转发: 服务器行为,一次请求,请求的对象会保存,URL不变。
request.getRequestDispatcher("index.jsp").forward(request,response);四种跳转
<% response.sendRedirect("login_seccess.jsp"); %>//告诉浏览器此路不通,你再问问另一页面能解决你的问题不?
<jsp:forward page="login_fail.jsp"/> //服务器将请求转发到另一页面,浏览器不知情.
<% request.getRequestDispatcher("login_fail.jsp").forward(request,response);%> //服务器将请求转发到另一页面,浏览器不知情.
<% pageContext.forward("login_fail.jsp");%> //服务器将请求转发到另一页面,浏览器不知情.查看全部 -
@JSP---九大内置对象之 response
response对象:
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。常用方法:
· String setCharacterEncoding(); //设置响应字符编码格式
· String getCharacterEncoding(); //获取响应字符编码格式· void setContentType(); //设置相应MIME类型
例:response.setContentType("text/html;charset=utf-8");PrintWriter需要导包:java.io.*;
· PrintWriter outer = response.getWriter(); //获得输出流对象
PrintWriter对象总是提前于内置的JspWriter对象,也就是out对象,
解决办法:使用out.flush()避免· sendRedirect(java.lang.String location) //重定向客户端的请求
例:response.sendRedirect("reg.jsp"); //重定向到项目目录下的reg.jsp页面注:重定向之前,不能够有out.close()或者out.flush()操作,否则会抛出异常
查看全部
举报