JavaWeb之Servlet day02
2016-04-30 00:28
731 查看
映射细节
1:一个Servlet可以有多个2:可以使用(*)通配符来给Servlet配置资源名称
方式一:/*使用任何字符都可以访问当前的Servlet 方式二:使用拓展名配置 *.abc 只要Servlet的的资源名后缀为abc就可访问
3:Servlet的生命周期方法执行顺序
构造器>init>service>destory 如果初始化操作非常复杂,那么就应该改变初始化的时机 在web.xml文件中添加配置,数字代表执行初始化的优先级,0表示最先执行 <load-on-startup>0</load-on-startup>
4:Servlet的名称不能为default,default专门用于访问项目下的静态文件
Servlet3.0的注解配置
问题: 如果有多个Servlet 那么就需要在web.xml文件有大量的配置,造成文件过于臃肿解决方法:使用注解代替xml文件中的部分配置
注解的使用方式
第一步:WebServlet("/注解元素") 第二步:metadata-complete(false)默认为true,删除为false
WebServlet常用的元素
String name() default""; 指定Servlet的名称 String[] value default{};和urlPatterns一样的工功能<url-pattern> int loadOnStartup() default 0;设置Servlet的初始化时机 WebIitParam[] initParams() default{}设置Servlet的初始化参数
在Servlet中使用注解的优缺点
优点:简单直观,便于维护; 缺点:有以硬编码的形式写入到Servletd代码中
Servlet线程的安全问题
线程不按安全的原因:多线程并发的访问同一份资源解决方法
1:Servlet实现SingleThreadModel,只允许一个对象进入 2:不使用成员变量,改为当前对象的局部变量,
Http无协议带来的问题
http是无协议状态,也就是没有记忆力,每个请求之间无法共享数据解决方式
1:参数传递机制,解决请求之间不能共享数据的问题 问题:不安全,信息暴露 2:Cookie:将用户的信息保留在浏览器中 3:Session 将数据保留在服务端,给浏览器一个内存地址,根据地址从内存中过去数据
Cookie
Cookie小甜点:是一个客户端技术,将数据放到浏览器中,(请求头中)Cookie的基本使用:
1:创建cookie的对象 Cookie(String name,String vlaue) Cookie c=new Cookie("username","neld") 2:强Cookie中的共享数据交给浏览器 response对象.addCookie(c); 3:获取Cookie的中共享数据 Cookie[]cookies=request对象.getCookie() for(Cookie c : cookies){ if(“username”.equals(c.getName())){ username = c.getValue(); break; } } 4:Cookie中的name和value不支持中文 URLEncoder.encode(String name,String enc)编码,加密 URLDecoder.decode(String name,String enc)解码,解密 5:修改Cookie中的共享数据, 根据Cookie对象调用setValue(String name)即可设置参数值 创建一个新的Cookie对象,name和被修改的Cookie的一样 6:Cookie的生命周期Cookie对象.setMaxAge(int expiry) expiry=0删除当前的Cookie对象 expiry>0的值表示Cookie存活时间的秒数 expiry<0默认值,浏览器关闭的时候Cookie失效 7:Cookie的路径和域范围 Cookie对象.setPath("/");设置为根路径Cookie对象.setDomain(".baidu.com")
Cookie的缺陷
1: 不支持中文; 2: 共享的数据保存在浏览器,不安全 3: 数据大小限制最大4kb 4: 一次只可以保存一个字符串
Session
Session:会话,实现会话跟踪的技术,实际上底层依然使用Cookie来实现,是服务端的技术,给浏览器一个内存地址,根据地址从内存中获取数据
1:获取Session request对象.getSession() 2:设置参数 session对象.setAttribute(String name,Object value); 3:获取参数 session对象.getAttribute(String name); 3:更改参数 session对象.setAttribute(String name,Object vlaue) 4:删除参数 session对象.removeAttribute(参数) 5:销毁session对象 session对象.invalidate(); 6:超时管理 session对象.setMaxInactiveInterval(秒数); 7:URL重写,在浏览器关闭Cookie的时候使用 String url = resp.encodeUrl("/session/list"); 在跳转页面改为url;
相关文章推荐
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- jsp和servlet中实现页面跳转的方式实例总结
- java servlet结合mysql搭建java web开发环境
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- Servlet 过滤器详细介绍
- JSP+Servlet+JavaBean实现登录网页实例详解
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- JSP使用Servlet作为控制器实现MVC模式实例详解
- JSP使用Servlet过滤器进行身份验证的方法
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- js调用后台servlet方法实例
- 利用JQuery和Servlet实现跨域提交请求示例分享