重温servlet①
Servlet是单例的,是线程不安全的。比较灵活,但是容易会使两个线程产生错误
类由我们自己来写,对象由服务器生成,方法由服务器自己调用。
一个servletconfig对象对应着一段web.xml中的servlet的配置信息。
可以获取到servletname --getServletName
获取servlet的上下文 --getServletContext
都是接口 实现类都是tomcat提供的。
获取初始化参数 --getinitparameter(String name)
在web.xml里面配置初始化参数
|
<servlet> <servlet-name>AServlet</servlet-name> <servlet-class>com.pcx.servlets.AServlet</servlet-class>
<init-param> <param-name>p1</param-name> <param-value>v2</param-value> </init-param> <init-param> <param-name>p2</param-name> <param-value>v2</param-value> </init-param> </servlet>
<servlet-mapping> <servlet-name>AServlet</servlet-name> <url-pattern>/AServlet</url-pattern> </servlet-mapping> |
在servlet初始化的时候通过servletConfig获取到这些参数
|
@Override public System.out.println("init..."); System.out.println(servletConfig.getInitParameter("p1")); System.out.println(servletConfig.getInitParameter("p2"));
Enumeration es=servletConfig.getInitParameterNames(); while(es.hasMoreElements()){ System.out.println(es.nextElement()); } } |
Service(ServletRequest req,ServletResponse res) 请求 响应 每请求一次调用一次
4开头的错误是客户端的错误
404 访问的路径找不到
405 找不到处理的请求方式doPost或者doGet
200正常
304重定向
500 服务器端程序出现错误
不要再servlet里面创建成员,尽量使用局部变量。
可以创建只读状态成员。
让服务器启动的时候就创建色servlet
在<servlet>中配置<load-on-startup>,其中配置一个数字(非负的整数)。
url-pattern 可以有多个。
可以在配置路径的时候给出通配符
路径匹配/servlet/*
类型匹配*.Do
/*匹配所有
*只能在两端宝宝不能出现在中间。
Web.xml文件的继承
Conf 目录下的web.xml文件的父文件。
404 default
Session的存活时间
每一中文件格式都对应一个mime类型
一个项目只有一个servletContext对象!application 域对象 --》传递数据
我们可以在对个servlet中来获取这个唯一对象,使用它可以给多个servlet传递数据!耦合度低了。 高内聚 低耦合
与天地同寿!这个对象与tomcat一块启动一块销毁。
可以死而复生。
域对象内部其实是一个map。
小练习:
记录访问量:
|
public throws ServletException, IOException { ServletContext app=this.getServletContext(); Integer count=(Integer) app.getAttribute("count"); if (count==null) { app.setAttribute("count", 1); }else { app.setAttribute("count", count+1); } PrintWriter pw=response.getWriter(); pw.print("<h1>"+count+"</h1>"); } |
访问类路径下的资源文件
|
public throws // ClassLoader cl=this.getClass().getClassLoader(); //相对于classes路径 // InputStream is=cl.getResourceAsStream("com/pcx/servlets/a.txt"); //相对于class文件 InputStream is=this.getClass().getResourceAsStream("a.txt"); //如果加上/则相对于classes目录下 // InputStream is=this.getClass().getResourceAsStream("/a.txt"); String s=IOUtils.toString(is); System.out.println(s); } |
需要加入commons-io-1.4.jar包
图片生成:
|
public public VerifyCode vc=new VerifyCode(); BufferedImage bi=vc.getImage(); System.out.println(vc.getText()); VerifyCode.output(bi, new FileOutputStream("b.jpg")); } } |
需加入itcast-tools-1.4.2.jar包
重温servlet①的更多相关文章
- 重温Servlet学习笔记--session对象
session的类型是属于HttpSession,HttpSession是由javaWeb提供的,用来会话跟踪的类.session是服务器端对象,保存在服务器端. HttpSession是servle ...
- 重温Servlet学习笔记--Cookie对象
首先要了解cookie必须得先了解http协议,,Cookie是http协议指定的,先由服务器保存cookie到浏览器,在下次浏览器请求服务器时把上次请求得到的cookie归还给服务器,cookie以 ...
- 重温Servlet学习笔记--request对象
request和response是一对搭档,一个负责请求一个负责响应,都是Servlet.service()方法的参数,response的知识点前面梳理过了,这里只说一下request,在客户端发出每 ...
- 重温Servlet学习笔记--response对象
在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应 ...
- 重温Servlet学习笔记--servletContext对象
一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对 ...
- 重温servlet③
请求转发 forward 仅有一个请求 至少两个servlet 前一个的响应头保留着,但是响应体不保留了. 设置响应体太大,会报错 请求包含Include 都包含,响应头和响应体都会保留着 R ...
- 重温servlet②
重定向:我给服务器请求一条消息,服务器让我访问另外一个服务器(新的地址).302状态码,并设置location头,完成重定向.两个请求. package com.pcx.servlets; imp ...
- 重温Servlet学习笔记--编码问题
在说编码问题之前,首先先了解一下常见的字符编码: ISO-8859-1: 拉丁编码,不支持中文 gbk,gb2312,gb18030:系统默认编码,是中国的国标码 utf-8: 支持几乎所有语言的编 ...
- 重温 JSP 与 Servlet
Java Web使用SSH框架多了,很多基础的 JSP 与 Servlet 的东西都忘记了.最近在 JSP 标签 和 Struts2 包装的 Session 对象的混合使用时弄晕了,就翻书温习下. J ...
随机推荐
- Log4J日志配置与Juit测试
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器).Appenders(输出源)和Layouts(布局). 这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- django的类视图-11
目录 1. 使用类视图 创建类视图 注册路由 类视图使用装饰器 在url中装饰 在类视图中装饰 method_decorator 的 name 参数 使用Mixin扩展类 使用函数方式定义的视图叫函数 ...
- 【HNOI2014】道路堵塞
题面 题解 解法一 这个思路要基于以下一个结论: 当你删掉某条边\((x,x+1)\)时,最短路路线为:\(1\to x(\leq u)\to y(>u) \to n\),并且\(x\to y\ ...
- CF 1138 F. Cooperative Game
F. Cooperative Game 链接 题意: 有10个玩家,开始所有玩家在home处,每次可以让一些玩家沿着边前进一步,要求在3(t+c)步以内,到达终点. 分析: 很有意思的一道题.我们构造 ...
- CF 1138 E. Museums Tour
E. Museums Tour 链接 分析: 按时间建出分层图,每个点形如(u,t),表示u在在t个时刻的点,tarjan缩点.每个强连通分量中的点都能经过,然后DAG上dp. 代码: #includ ...
- 给浏览器和各种软件配置 http https socks5 代理 proxy
只需要像在 idea 里一样,配置好sr的本地代理ip:127.0.0.1 本地代理端口:1080 浏览器和软件的流量即可走 sr ,就能被 sr 代理了 用上代理之后,确实快了好多,这里是在打开 ...
- ASP.NET Core Token认证
翻译:Token Authentication in ASP.NET Core 令牌认证(Token Authentication)已经成为单页应用(SPA)和移动应用事实上的标准.即使是传统的B/S ...
- jenkins 自动上传代码到nexus 私库
1.jenkins 项目配置上传 2.jenkins 访问私库下载配置 -X clean install 3.maven 配置文件 /usr/local/maven/conf/settings.xml ...
- php_package v2.7发布了 宋正河作品
php_package 是一个面向过程的底层开发框架 http://download.csdn.net/download/songzhengdong82/4974123 欢迎大家下载
- Python3列表中获取相同元素出现位置的下标
前言 list: Python3的列表类型, 和其他语言中的数组类似 定义格式: l = ["a", "b", "c", "a&q ...