




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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) language:用来声明使用脚本语言种类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:用来设定此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. b) 7、 :不支持Bean和Applet时提示错误信息JSP的内置对象1、 page1. page的范围:只在当前页面有效2. 设置属性值:pageContext.setAttribute(属性名,属性值);3. 获取属性值:属性值=pageContext.getAttribute(属性名);2、 requesta) request范围:属性在一次请求范围内有效,如果一个页面跳转到另一个页面那么该属性就失效,这里指的是客户端的跳转,如由连接跳转。若用实现服务器端的跳转的话该属性仍有效。b) 设置属性:request.setAttribute(属性名,属性值);c) 获取值: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(“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实例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. PreparedStatement 预处理语句对象a) 继承与Statement比Statement更加灵活JavaBean1. 可以通过JavaBean来封装业务逻辑,进行数据库操作,从而实现了前后台程序和业务逻辑的分离。JavaBean其实就是一个简单的java类2. 一个标准的JavaBean必须有一下几点a) 必须是一个公开的类b) 必须有一个无参的构造函数c) 一般属性设置成私有的,通过getXXX()或setXXX()进行操作3. 在JSP中调用JavaBeana) 用到动作命令b) 语法:i. Id:为JavaBean实例化后的名称;ii. Scope:实例化后对象的存储范围,包括: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 提供了多种运算符操作如算术运算符,关系运算符,逻辑运算符,验证运算符等。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. $sessionS6. cookiea) cookie是以键值对的方式存储在浏览器的缓冲区内,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. 由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. ii. c) Deom:i. 1. 3”a) 要执行的语句2. 3. a) 条件不满足要执行的语句4. ii. Servlet开发1.servlet基础所有的Servlet必须继承于HttpServlet类。Servlet的配置:Servlet的配置需要在web.xml里添加两个标签和servlet类名包名+类名servlet类名访问路径Demo: ServletTest cn.servlet.ServletTest ServletTest /ServletTest 2. doGet方法用来处理客户端浏览器直接访问和get方式提交的表单doGet方法实例:表单提交页面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.getParameter(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(HttpServletRequest 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);out.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/html;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常用接口1HttpServletRequest接口HttpServletRequest接口的使用和JSP的内置对象request非常类似。request对象其实就是HttpServletRequest接口的一个实例,不过实例化过程是自动的,无需手动。Servlet中的request是容器初始化的,如果在程序中使用request对象,直接使用就可以了,无需自定义。用法和内置对象的用法一致,DEMO如上面的程序。 2.HttpServletResponse接口HttpServletResponse接口的使用和JSP的内置对象response非常类似。response对象其实就是HttpServletResponse接口的实例,不过实例化过程是自动的。Servlet中的response是容器初始化的,如果在程序中使用response对象,直接使用就可以了。用法和内置对象的用法一致,demo如上面的程序。3.HttpSession接口HttpSession接口的使用和JSP内置对象session的用法非常相似。session对象其实就是HttpSession接口的一个实例,不过其实例化过程是自动的,无需手动。在servlet中session对象必须通过request对象的getSession方法获得。DEMO:/获取session对象HttpSession session = request.getSession();/设置session的属性及属性值session.setAttribute(“name”,”value”);/判断session是否是新的boolean isNew = session.isNew();4. ServletContext接口ServletContext接口的使用和JPS的内置对象application非常相似。application对象其实就是ServletContext接口的一个实例,不过实例化过程是自动的,无需自定义在Servlet中application中必须通过HttpServlet接口中的getServletContext()方法获得。 HttpSession接口和ServletContext接口的实例:public void service(HttpServletRequest 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);/建立sessionHttpSession session = request.getSession();session.setAttribute(username, username); /建立applicationServletContext application= getServletContext();application.setAttribute(password, password);out.println(session.getAttribute(username);out.println(application.getAttribute(password);out.println(你好这里是service方法);out.flush();out.close();Filter开发Filter的中文名为过滤器的意思,借助filter我们可以实现以下功能:过滤非法文字和信息设置统一字符编码对用户进行登录验证改变图片文件格式对相应做压缩处理对XML的输出使用XSLT来进行转换在Servlet2.3之后,如果要添加Filter,只需在web.xml中配置Filter相关设置。可以方便的为web项目添加新的filter或修改现有的Filter,而不需要修改现有的servlet,JSP和现有的静态页面代码。Filter和Servlet类似,也是java中的一个类,所以添加方式和普通的java类相同。自定义的Filter必须实现Filter接口。还必须实现Filter中的init()方法,doFilter()方法和destroy()方法。其中init()方法和destroy()方法分别是初始化和销毁时调用。doFilter()方法负责过滤所有的处理代码都放在该方法中,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 javax.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,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名称和filter指定的类名。在web.xml中添加一个元素,其中包括两子元素和。用来指定过滤的URL。其中”/*”用来过滤所有的URL。 Filter的生命周期Filter和Servlet相似也具有生命周期,Filter从生成到销毁必须经过如下几个步骤:1.生成Filter并通过init()方法来进行初始化。 2.过滤用户请求,调用doFilter()方法。3.调用destroy()方法进行销毁,并通过垃圾收集器进行收集清理。常用的Filter1.非法文字过滤器首先通过Filter类中的doFilter()方法的request参数来获得用户的输入。然后对输入的文字进行判断和处理 ,如替换非法文字,提示输入的是非法文字,要求重新输入等。最后通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;import 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) throws 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.getRequestDispatcher(end.jsp)取得一个 * RequestDispatcher,一个请求分发器对象,它的方法 * forward(request,response)作用是将请求转发到end.jsp, * request封装了请求信息,response封装了响应信息。 * 注意是forward方式,这种方式只转发请求,不产生新的request对象。 * */request.getRequestDispatcher(end.jsp).forward(request, response); else /调用下一个filter或原始内容chain.doFilter(request, response);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 javax.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 ServletException 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.getParameter(username);String password = request.getParameter(password);/建立sessionHttpSession session = request.getSession();session.setAttribute(username, username); /建立applicationServletContext application= getServletContext();application.setAttribute(password, password);/页面跳转if(username.equals(admin)& password.equals(admin)response.sendRedirect(success.jsp);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可以监听容器中某一执行动作,并根据其要求作出相应的响应。在Servlet2.4中共有8个Listener接口,可以将其分为8类:第一类:与ServletContext有关的Listener接口:包括两个Listener接口:ServletContextListener和ServletContextAttributeListener;第二类:与HttpSession有关的Listener接口:包括四个Listener接口:为HttpSessionListener,HttpSessionAttributeListener,HttpSessionBindingListener和HttpSessionActivationListener;第三类:与ServletRequest有关的Listener接口:包括两个Listener接口:为ServletRequestListener和ServletRequestAttributeListener;1.ServletContextListener接口该接口中有两个方法一个是新建contextInitialized()方法。一个是销毁contextDestroyed()方法,这两个方法还包括一个参数sce,其类型为ServletContextEvent.同过ServletContextEvent对象的getServletContext()方法可以获得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(销毁一个ServletContextListener);public void contextInitialized(ServletContextEvent arg0) System.out.println(新创一个ServletContextListener);要配置的web.xmlcn.servlet.ServletContextListenerDemo 2.ServletContextAttributeListener接口本接口中包括三个方法:一个是attributeAdded()方法,用来监听application范围内属性的添加;一个是attributeReplaced()方法,用来监听application范围属性的替换;一个是attributeRemove()方法,用来监听application范围属性的移除;在这三个方法中还包括一个参数scaba其类型为ServletContextAttributeEvent, 通过ServletContextAttribute对象的getName()方法可获取属性的名,通过其getValue方法的可获得属性值;DEMO:package cn.servlet;import javax.servlet.ServletContextAttributeEvent;import javax.servlet.ServletContextAttributeListener;public class ServletContextAttributeListenerDemo implementsServletContextAttributeListener public void attributeAdded(ServletContextAttributeEvent arg0) System.out.println(添加的application的属性名为:+arg0.getName()+值为:+arg0.getValue();public void attributeRemoved(ServletContextAttributeEvent arg0) System.out.println(移除的application的属性名为:+arg0.getName()+值为:+arg0.getValue();public void attributeReplaced(ServletContextAttributeEvent arg0) System.out.println(替换的application的属性名为:+arg0.getName()+值为:+arg0.getValue();Web.xml cn.servlet.ServletContextAttributeListenerDemo 别的文件中新建修改删除application/建立applicationServletContext application= getServletContext();/添加application
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古省际劳务协作招聘岗位考前自测高频考点模拟试题完整答案详解
- 河北省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【教育与体育大类】模拟练习
- 警民共建活动协议书范文5篇
- 安全培训教学下载课件
- 2025年安徽省粮油经贸有限公司第二批次招聘4人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年三片式球阀项目合作计划书
- 安全培训效果问卷调查课件
- HSV-1-HSV-2-IN-3-生命科学试剂-MCE
- 农作物合作种植协议书5篇
- HCV-NS5B-polymerase-IN-3-生命科学试剂-MCE
- 《中国进口牛肉评估》课件
- 仓库盘点盈亏分析报告
- 小学音乐人音版三年级上册维也纳的音乐钟教案
- 国家职业技能标准 保育师
- DB36-T 2098-2024 电动汽车充电站防雷技术规范
- 消防法律知识培训课件
- 向上级招反诈技术人员的申请
- 《玻璃纤维湿法制品》课件
- DB63T 2374-2024 微型消防站建设管理
- 新版质量管理体系标准之组织的知识
- 符号学角度分析设计案例
评论
0/150
提交评论