收藏 分享(赏)

javaEE知识总结加实战样例.doc

上传人:精品资料 文档编号:10217451 上传时间:2019-10-21 格式:DOC 页数:61 大小:888.50KB
下载 相关 举报
javaEE知识总结加实战样例.doc_第1页
第1页 / 共61页
javaEE知识总结加实战样例.doc_第2页
第2页 / 共61页
javaEE知识总结加实战样例.doc_第3页
第3页 / 共61页
javaEE知识总结加实战样例.doc_第4页
第4页 / 共61页
javaEE知识总结加实战样例.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、Jsp 的基础语法:1. out.println();2. jsp 的声明语句:以结束,使用声明语句声明的变量为全局变量当有多个用户执行此 JSP 页面时将共享此变量,声明语句只能声明变量。不能有其他的语句3. JSP Scriptlets :以结束 JSP Scriptlets 中可包含多种语句如方法,变量,表达式等。4. JSP 中的表达式:以结束,功能为把标签里的内容转换为字符串并在屏幕上显示。5. JSP 中的注释 JSP 指令元素:1、 page 指令:主要用来设定 JSP 页面的全局属性,该配置将作用于整个 jsp 页面。其语法格式如下2、 3、 Page 的属性及属性值a) la

2、nguage:用来声明使用脚本语言种类i. 目前只有 java,默认的也是 javaii. b) extends:指定该页面继承于那个父类i. c) import:用来指定导入的包i. d) session:用来指定 JSP 页面中是否可以使用 sessioni. e) buffer:用来指定输入输出流是否具有缓冲区i. f) autoFlush:用来设定缓冲区是否自动强制输出i. g) isThreadSafe:用来设定 JSP 页面是否使用多线程i. h) info:用来设定 jsp 页面的信息i. i) errorPage:设定异常时跳转的页面i. j) isErrorPage:用来设定

3、此 jsp 页面是否可以设定异常页面i. k) contentType:网页类型和编码i. l) pageEncoding:字体编码i. 4、 include:包含文本文件a) 5、 taglib:引入标签库:属性:prefix=”前缀 ”; uri =“标签库路径”a) JSP 动作元素1、 JSP 动作元素的语法a) 或者2、 动作元素a) b) 和的区别i. :包含静态文件如果文件中有 jsp的代码就会被自动执行ii. :静态文件不执行,只有动态文件才执行。3、 :跳转到指定页面a) 4、 参数传递结合一起使用a) i. b) 5、 引入插件6、 结合着使用a) i. ii. iii.

4、b) 7、 :不支持 Bean 和 Applet 时提示错误信息JSP 的内置对象1、 page1. page 的范围:只在当前页面有效2. 设置属性值:pageContext.setAttribute(属性名 , 属性值);3. 获取属性值:属性值=pageContext.getAttribute(属性名);2、 requesta) request 范围:属性在一次请求范围内有效,如果一个页面跳转到另一个页面那么该属性就失效,这里指的是客户端的跳转,如由连接跳转。若用实现服务器端的跳转的话该属性仍有效。b) 设置属性:request.setAttribute( 属性名 , 属性值);c) 获

5、取值:request.getAttribute(属性名);3、 sessiona) session 的范围:客服浏览器与服务器一次会话范围内,如果和服务器断开连接那么 session 也就失效了b) 设置 session: session.setAttribute(“name”,”value”);c) 获取 session: value = session.getAttribute(“name”);4、 applicationa) application 的范围:在整个服务器范围内,直到服务器停止后才会失效b) 设置 application:application.setAttribute(“

6、na”,”vu”);c) 获取值:value = application.getAttribute(“name”);5、 移除属性的方法:a) removeAttribute(“name”)b) demo: page.removeAttribute(“name”);6、 request 对象a) 获取客户端请求参数i. getParameter(String name):获取 name 的值ii. getParameterNames():获取所有参数的名称;iii. getParameterValues();获取值得数组iv. getParameterMap();获取所有参数封装的 map 实

7、例JDBC1. 把驱动文件拷到 Web 项目的 WEB_INF 目录下的 lib 中即可2. 以 ORACLE 为例a) 加载驱动i. Class.forName(“oracle.jdbc.driver.OracleDriver”);b) 连接数据库i. conn = DriverManager.getConnection(url,user,pw);ii. url=”jdbc:oracle:thin:ip:port:db_name”;c) 新建 statement 对象i. Statement st = conn.createStatement();d) 由 st 执行 Sql 语句3. Pr

8、eparedStatement 预处理语句对象a) 继承与 Statement 比 Statement 更加灵活JavaBean1. 可以通过 JavaBean 来封装业务逻辑,进行数据库操作,从而实现了前后台程序和业务逻辑的分离。JavaBean 其实就是一个简单的 java 类2. 一个标准的 JavaBean 必须有一下几点a) 必须是一个公开的类b) 必须有一个无参的构造函数c) 一般属性设置成私有的,通过 getXXX()或setXXX()进行操作3. 在 JSP 中调用 JavaBeana) 用到动作命令b) 语法:i. Id:为 JavaBean 实例化后的名称;ii. Scop

9、e:实例化后对象的存储范围,包括:page,request,session,applicationiii. Class: JavaBean 的包名和类名4. 设置 javaBean 的属性a) JSP 中提供了b) 语法 1i. Name:指定实例化的对象名ii. Property:属性名iii. Value:指定的值c) 语法 2:i. 接受表单时可以使用,但必须注意的一点为表单 name 的大小写必须和 JavaBean 中的属性相同。d) 语法 3:5. 获取 JavaBean 的属性值a) EL 表达式1. EL 全名为:Expression Language 提供了多种运算符操作如算

10、术运算符,关系运算符,逻辑运算符,验证运算符等。2. 算术运算符:+,-,*,/,%a) Demo:语法$表达式,前面加的原样输出i. $1+1=ii. $1+13. 关系运算符: , =, b?a:ba) EL 的内置对象:pageScope, requestScope, sessionScope, applicationScope; b) DEMO:c) session.setAttribute(“name”,”value”);/设置 sessiond) 通过 EL 表达式获取 sessioni. $sessionScope.name6. cookiea) cookie 是以键值对的方式存

11、储在浏览器的缓冲区内,EL 中没有提供 COOKIE 的操作,只能通过 cookie对象来设置 cookie 中的值b) DEMO:i. 在一个文件中设置 cookie1. /创建 cookiea) Cookie c = new Cookie(“user”,”root”);2. /添加 cookie 到客户端a) response.addCookie(c);3. 在另一个文件中取得 cookiea) 值为$cookie.user.valueJSTL 标签库1、 首先由引入标签库(prefix 指明前缀)2、 标签a) i. 由 var 指定变量名;ii. 由 value 指定变量值iii. 由

12、 scope 指定变量存储范围3、 标签a) 标签用来显示数据的内容,类似于,但其功能更为强大;b) : 通过 value 指定其显示的值c) 设置是否将 value 中的值原样输出:true:原样,false:不转换d) 如果 value 的值为 null 则显示默认值4、 标签a) 标签用来移除指定范围的变量b) 5、 标签a) 标签用来执行流程控制,与 java 中的 if 相同b) 要执行的内容 i. test 里放的是条件表达式,var 存放判断后的结果6、 , ,标签a) 如同 if-else 结构, 中可以有一个至多个标签,可以有零或多个标签b) 语法i. 1. 2. 3. 4.

13、 ii. c) Deom:i. 1. 3”a) 要执行的语句2. 3. a) 条件不满足要执行的语句4. ii. Servlet 开发1.servlet 基础所有的 Servlet 必须继承于 HttpServlet 类。Servlet 的配置:Servlet 的配置需要在 web.xml 里添加两个标签和servlet 类名包名+类名servlet 类名访问路径Demo:ServletTestcn.servlet.ServletTestServletTest/ServletTest2. doGet 方法用来处理客户端浏览器直接访问和 get 方式提交的表单doGet 方法实例:表单提交页面

14、index.jsp用户名:密码:重写 Servlet 中的 doGet 方法:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /设置编码response.setContentType(“text/html;charset=gb2312“);/新建输出对象,是结果输出PrintWriter out = response.getWriter();/接受请求参数String username = request.getPara

15、meter(“username“);String password = request.getParameter(“password“);out.println(username);out.println(password);out.println(“你好这里是get方法“ );out.flush();out.close();3.doPost 方法处理客户端 post 方式提交过来的数据,不能处理浏览器的直接访问doPost 方法实例:表单提交页面 index.jsp用户名:密码:重写 Servlet 中的 doPost 方法:public void doPost(HttpServletReq

16、uest request, HttpServletResponse response)throws ServletException, IOException /设置编码response.setContentType(“text/html;charset=gb2312“);/新建输出对象,是结果输出PrintWriter out = response.getWriter();/接受请求参数String username = request.getParameter(“username“);String password = request.getParameter(“password“);ou

17、t.println(username);out.println(password);out.println(“你好这里是post方法“);out.flush();out.close();4.service 方法用来处理客户端浏览器的直接访问以及 get和 post 方法。Service DEMO:public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 设置编码response.setContentType(“text/h

18、tml;charset=gb2312“);/ 新建输出对象,是结果输出PrintWriter out = response.getWriter();/ 接受请求参数String username = request.getParameter(“username“);String password = request.getParameter(“password“);out.println(username);out.println(password);out.println(“你好这里是service方法“ );out.flush();out.close();5.Servlet 常用接口1Ht

19、tpServletRequest 接口HttpServletRequest 接口的使用和 JSP 的内置对象request 非常类似。request 对象其实就是HttpServletRequest 接口的一个实例,不过实例化过程是自动的,无需手动。Servlet 中的 request 是容器初始化的,如果在程序中使用 request 对象,直接使用就可以了,无需自定义。用法和内置对象的用法一致,DEMO 如上面的程序。2.HttpServletResponse 接口HttpServletResponse 接口的使用和 JSP 的内置对象response 非常类似。 response 对象其实

20、就是HttpServletResponse 接口的实例,不过实例化过程是自动的。Servlet 中的 response 是容器初始化的,如果在程序中使用 response 对象,直接使用就可以了。用法和内置对象的用法一致,demo 如上面的程序。3.HttpSession 接口HttpSession 接口的使用和 JSP 内置对象 session 的用法非常相似。session 对象其实就是 HttpSession 接口的一个实例,不过其实例化过程是自动的,无需手动。在 servlet 中 session 对象必须通过 request 对象的getSession 方法获得。DEMO:/获取 s

21、ession 对象HttpSession session = request.getSession();/设置 session 的属性及属性值session.setAttribute(“name”,”value”);/判断 session 是否是新的boolean isNew = session.isNew();4. ServletContext 接口ServletContext 接口的使用和 JPS 的内置对象application 非常相似。application 对象其实就是ServletContext 接口的一个实例,不过实例化过程是自动的,无需自定义在 Servlet 中 appli

22、cation 中必须通过 HttpServlet 接口中的 getServletContext()方法获得。 HttpSession 接口和 ServletContext 接口的实例:public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 设置编码response.setContentType(“text/html;charset=gb2312“);/ 新建输出对象,是结果输出PrintWriter out = resp

23、onse.getWriter();/ 接受请求参数String username = request.getParameter(“username“);String password = request.getParameter(“password“);/建立sessionHttpSession session = request.getSession();session.setAttribute(“username“, username);/建立applicationServletContext application= getServletContext();application.set

24、Attribute(“password“, password);out.println(session.getAttribute(“username“);out.println(application.getAttribute(“password“);out.println(“你好这里是service方法“ );out.flush();out.close();Filter 开发Filter 的中文名为过滤器的意思,借助 filter 我们可以实现以下功能:过滤非法文字和信息设置统一字符编码对用户进行登录验证改变图片文件格式对相应做压缩处理对 XML 的输出使用 XSLT 来进行转换在 Serv

25、let2.3 之后,如果要添加 Filter,只需在web.xml 中配置 Filter 相关设置。可以方便的为 web 项目添加新的 filter 或修改现有的 Filter,而不需要修改现有的 servlet,JSP 和现有的静态页面代码。Filter 和 Servlet 类似,也是 java 中的一个类,所以添加方式和普通的 java 类相同。自定义的 Filter 必须实现 Filter 接口。还必须实现 Filter 中的 init()方法,doFilter()方法和 destroy()方法。其中 init()方法和destroy()方法分别是初始化和销毁时调用。doFilter()

26、方法负责过滤所有的处理代码都放在该方法中,doFilter()方法接受三个参数,分别是 request,response,chain。其中 request,response 用来传递给下一个 Filter 或者JSP 和 servlet, chain 则通过 doFilter()方法来调用下一个Filter,获得调用原始的 JPS,servlet 等其他内容。Demo:package cn.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import j

27、avax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class FirstFilter implements Filter public void destroy() System.out.println(“销毁方法!“);public void doFilter(ServletRequest request, ServletResponse response,

28、FilterChain chain) throws IOException, ServletException System.out.println(“执行过滤!“ );/调用下一个filter或原始内容chain.doFilter(request, response);public void init(FilterConfig arg0) throws ServletException System.out.println(“初始化方法!“ );若想执行在 web.xml 里配置是少不了的,在 web.xml 中添加元素,其中包括两个子元素分别为和,用来定义 Filter 名称和 filte

29、r 指定的类名。在web.xml 中添加一个元素,其中包括两子元素和 。用来指定过滤的 URL。其中”/*” 用来过滤所有的 URL。Filter 的生命周期Filter 和 Servlet 相似也具有生命周期,Filter 从生成到销毁必须经过如下几个步骤:1.生成 Filter 并通过 init()方法来进行初始化。2.过滤用户请求,调用 doFilter()方法。3.调用 destroy()方法进行销毁,并通过垃圾收集器进行收集清理。常用的 Filter1.非法文字过滤器首先通过 Filter 类中的 doFilter()方法的 request 参数来获得用户的输入。然后对输入的文字进行

30、判断和处理 ,如替换非法文字,提示输入的是非法文字,要求重新输入等。最后通 chain 的 doFilter 方法来调用下一个 Filter,获得原始的 jsp 或 servlet 等其他内容。一个完整的 DEMOFilter 文件:package cn.servlet;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;impo

31、rt javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class FirstFilter implements Filter public void destroy() System.out.println(“销毁方法!“);public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) thro

32、ws IOException, ServletException System.out.println(“执行过滤!“);/接受要过滤的字符串String username = null;username = request.getParameter(“username“);/如果字符串不为空if(username != null)/如果不含非法文字z,调用下一个filter或原始内容if(username.indexOf(“z“) = -1)/调用下一个filter或原始内容chain.doFilter(request, response); else /* request.getReque

33、stDispatcher(“end.jsp“)取得一个* RequestDispatcher,一个请求分发器对象,它的方法* forward(request,response)作用是将请求转发到 end.jsp,* request封装了请求信息,response封装了响应信息。* 注意是forward方式,这种方式只转发请求,不产生新的request对象。* */request.getRequestDispatcher(“end.jsp“).forward(request, response); else /调用下一个filter或原始内容chain.doFilter(request, res

34、ponse);public void init(FilterConfig arg0) throws ServletException System.out.println(“初始化方法!“);Servlet 文件:package cn.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import j

35、avax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class ServletTest extends HttpServlet public ServletTest() super();public void destroy() super.destroy();System.out.println(“servlet结束!“);public void init() throws ServletE

36、xception System.out.println(“servlet开始!“);public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 设置编码response.setContentType(“text/html;charset=gb2312“);/ 新建输出对象,是结果输出PrintWriter out = response.getWriter();/ 接受请求参数String username = request

37、.getParameter(“username“);String password = request.getParameter(“password“);/建立sessionHttpSession session = request.getSession();session.setAttribute(“username“, username);/建立applicationServletContext application= getServletContext();application.setAttribute(“password“, password);/页面跳转if(username.e

38、quals(“admin“)elseresponse.sendRedirect(“failure.jsp“);out.println(session.getAttribute(“username“);out.println(application.getAttribute(“password“);out.println(“你好这里是service方法“);out.flush();out.close();Form 表单文件:用户名:密码:Listener 开发Listener 中文名为监听器,从字面上可以看出,Listener主要用来监听,通过 Listener 可以监听容器中某一执行动作,并根

39、据其要求作出相应的响应。在 Servlet2.4 中共有 8 个 Listener 接口,可以将其分为8 类:第一类:与 ServletContext 有关的 Listener 接口:包括两个 Listener 接口: ServletContextListener和 ServletContextAttributeListener;第二类:与 HttpSession 有关的 Listener 接口:包括四个 Listener 接口:为HttpSessionListener,HttpSessionAttributeListener,HttpSessionBindingListener 和 Http

40、SessionActivationListener;第三类:与 ServletRequest 有关的 Listener 接口:包括两个 Listener 接口:为 ServletRequestListener 和ServletRequestAttributeListener;1.ServletContextListener 接口该接口中有两个方法一个是新建 contextInitialized()方法。一个是销毁 contextDestroyed()方法,这两个方法还包括一个参数 sce,其类型为 ServletContextEvent.同过ServletContextEvent 对象的 ge

41、tServletContext()方法可以获得 ServletContext 对象。DEMO:package cn.servlet;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class ServletContextListenerDemo implements ServletContextListener public void contextDestroyed(ServletContextEvent arg0) System.out.println(“

42、销毁一个ServletContextListener“);public void contextInitialized(ServletContextEvent arg0) System.out.println(“新创一个ServletContextListener“);要配置的 web.xmlcn.servlet.ServletContextListenerDemo 2.ServletContextAttributeListener 接口本接口中包括三个方法:一个是 attributeAdded()方法,用来监听 application 范围内属性的添加;一个是attributeReplace

43、d()方法,用来监听 application 范围属性的替换;一个是 attributeRemove()方法,用来监听application 范围属性的移除;在这三个方法中还包括一个参数 scaba 其类型为 ServletContextAttributeEvent, 通过ServletContextAttribute 对象的 getName()方法可获取属性的名,通过其 getValue 方法的可获得属性值;DEMO:package cn.servlet;import javax.servlet.ServletContextAttributeEvent;import javax.servle

44、t.ServletContextAttributeListener;public class ServletContextAttributeListenerDemo implementsServletContextAttributeListener public void attributeAdded(ServletContextAttributeEvent arg0) System.out.println(“添加的application的属性名为:“+arg0.getName()+“值为:“+arg0.getValue();public void attributeRemoved(Servl

45、etContextAttributeEvent arg0) System.out.println(“移除的application的属性名为:“+arg0.getName()+“值为:“+arg0.getValue();public void attributeReplaced(ServletContextAttributeEvent arg0) System.out.println(“替换的application的属性名为:“+arg0.getName()+“值为:“+arg0.getValue();Web.xmlcn.servlet.ServletContextAttributeListen

46、erDemo别的文件中新建修改删除 application/建立applicationServletContext application= getServletContext();/添加application.setAttribute(“password“, password);/修改application.setAttribute(“password“, “replace“);/移除application.removeAttribute(“password“);结果:添加的application的属性名为:password值为:admin替换的application的属性名为:passwo

47、rd值为:admin移除的 application 的属性名为:password 值为:replace3、HttpSessionListener 接口HttpSessonListener 接口用来实现 session 的初始化和销毁的监听。该接口中包括两个方法,sessionCreated() 用来监听 session 的创建和初始化,另一个是 sessionDestroyed()方法用来监听 session 的销毁。这两个方法还包括一个参数se,其类型为 HttpSessionEvent,可以通过 HttpSessionEvent对象的 getSession()方法获得 session 对象

48、DEMO:package cn.servlet;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class HttpSessionListenerDemo implements HttpSessionListener public void sessionCreated(HttpSessionEvent arg0) HttpSession session = arg0.getS

49、ession();System.out.println(“新创建的session 的id为“+session.getId();public void sessionDestroyed(HttpSessionEvent arg0) System.out.println(“销毁的session “);Web.xmlcn.servlet.HttpSessionListenerDemo别的文件中:/销毁sessionsession.invalidate();结果:新创建的 session 的 id 为 37A0BF336A6E9894BA90395E4B9104D54.HttpSessionAttributeListener 接口本接口用来实现 session 范围属性变化的监听,该接口中包括三个方法:attributeAdded(), attributeReplaced(), attributeRemove(),可用其参数的方法 getName()以及get

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报