当前位置:文档之家› 韩顺平servlet笔记(个人总结版)

韩顺平servlet笔记(个人总结版)

第一课第二课tomcat 简单模拟package com.my.first;import java.io.*;import .*;publicclass Mytomcat {/*** @param args*/publicstaticvoid main(String[] args) throws Exception {ServerSocketss = new ServerSocket(9999);Socket s = ss.accept();System.out.println("在9999上等待。

");OutputStreamos =s.getOutputStream();BufferedReaderbr = new BufferedReader(new FileReader("f:\\hello.html"));String str="";while((str = br.readLine())!=null){os.write(str.getBytes());}br.close();os.close();s.close();// ss.close();}}在浏览器中输入 http://localhost:9999 就会出现“hello world”第三课启动tomcat 各种问题总结第四课第五课虚拟目录如在f盘存放着各种web应用,但是空间不够了,这是我在d盘弄个文件当做该web应用的文件。

但是要在server.xml中指定一下。

步骤:1、在那个磁盘下建立“f:\web2”,并建立相关的资源文件2、在server.xml中配置 <Contextpath=”/web2”docBase=”f:\web2”>ps: path中的“/web2”是什么,在地址中就输入什么。

http://localhost:8080/web2/hello2.htmlcontext 能配置的属性 path、docBase、reloadable(有改变就重启tomcat)、unpackWAR配置自己的主机名步骤:1、C:\Windows\System32\drivers\etc hosts配置。

2、在server.xml中配置<Host name="" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><context path=””docBase=””/> //添加别的目录。

</Host>第六课<Engine name="Catalina" defaultHost="localhost">Engine 下有多个host,可以指定默认的host 用defaultHost指定。

在输入12.0.0.1的时候它会找默认的host。

第七课Servlet的开发1、实现Servlet接口2、继承GenericServlet类3、继承HttpServlet类package com.my.first;import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;publicclass MyServlet implements Servlet{@Overridepublicvoid destroy() {// TODO Auto-generated method stub}@Overridepublic ServletConfiggetServletConfig() {// TODO Auto-generated method stubreturnnull;}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturnnull;}@Overridepublicvoid init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub}@Overridepublicvoid service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stub}}第八课实验:在webapps下建立项目wang,WEB-INF =》classes、lib、web.xml 把写好的类MyServlet 放在classes下,包括类的包。

第九课第十课继承GenericServlet 的servlet,只要重写server()方法即可。

继承HttpServlet 来开发servlet。

常用继承这个类的的servlet 一般要重写doGet(),doPost()方法。

可能会出现的JDK版本不一致的情况,就会报错一个注册好的servlet 能被多个映射Servlet细节一、在<url-pattern>/abc.html</url-pattern> 并不是一个html文件,只是一种特殊的路径其实和/abchtmlxxx没有任何区别。

就是一个路径名。

(假象)二、 <url-pattern>/abc/cbd/xxx</url-pattern> 可以多层路径。

三、通配符的映射路径。

*.扩展名或者/*四、①如果一个请求同时匹配多个servlet,匹配度高的那个会被映射到。

② *.do的匹配度最低。

当出现*.do 和/* 同时匹配,/*的匹配度比*.do高。

第十二课<load-on-startup>1</load-on-startup> 1(几)代表被第1(几)个启动的servlet,这往往用于自启动、初始化的时候。

自动发送邮件问题<servlet><servlet-name>xxx<servlet-name><servlet-class>com.xxx.xx.wang<servlet-class><load-on-startup>1</load-on-startup></servlet>系统会自动加载这个servlet。

如果这个servlet 里面的方法每分钟扫描下该定时发送的邮件,那就能实现邮件的定时发送了。

servletConfig通过this.getServletConfig().getInitParameter(“encoding”)获得<param-value>的内容。

第十四课request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值response.setContentType("text/html;charset=gb2312")是设置页面中为中文编码前者是设置动态文字(参数,数据库),后者设置页面静态文字response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码.response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前.response.setContentType设置发送到客户端的响应的内容类型,可以包括字符编码说明.也就是说在服务器端坐了这个设置,那么他将在浏览器端起到作用,在你打开浏览器时决定编码方式如果该方法在response.getWriter()被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。

该方法如果在response.getWriter()被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置 Content-type实体报头response.setCharacterEncoding设置响应的编码如果服务器端使用response.setContentType设置了编码格式,那么应该使用 response.setCharacterEncoding指定的编码格式,这样就会把之前的设置屏蔽掉一般建议设置response.setCharacterEncodingresponse.setContentType 经常会遇到失效的情况(设置了但是经常不起作用)小项目第十五课http协议基本结构;请求行消息投内容第十八、九课HttpServletRequest对象。

常用方法:getWrite()得到的是PrintWrite对象(返回字符数据) getOutputStream()(返回二进制码,对象,也可以是字符)区别:PS:这两个输出流(PrintWrite,outputStream)不能同时使用。

只能传递字符,不能传递对象传递对象用request.getSession().setAttribute(“”,xx);接收对象用request.getSession().getAttribute(“”);第二十课中文乱码发生中文乱码的三种情况:①表单提交的时候。

1.post提交:在提交的时候加上request.setCharacterEncoding(“utf-8/gbk等等”)Ps:post提交的东西封装到request对象里面去了,所有这样设置有用2、Ps:get提交的东西放在链接后面。

②超链接的时候如:<a href =?username=’王’>用处理get提交方法即可。

相关主题