javaweb学习路线-Tomcat与Servlet-1

1.Tomcat:先配置java环境和tomcat环境

配置端口号:到conf里面的server.xml中找到port:8080 可以修改端口号,最大到65535,注意不能占用默认的端口

work:存放tomcat动态生成的资源

appwebs:存放写的web文件

logs:日志

lib:tomcat要使用的架包

2.创建一个web应用:

静态网站:

第一步:在webapps下创建一个目录(名称不能包括中文和空格),这个目录被称为项目目录

第二步:在文件里创建一个html文件,在里面写内容就完事了

动态网站:

第一步:在webapps下创建一个目录

第二步:在项目目录下创建这些内容:

  创建一个WEB-INF文件(!!它下面的资源是允许浏览器访问的):

    web.xml文件

    lib文件夹(存放架包)

    classes文件夹(存放编译出来的.class文件)

  创建一个静态或者动态的页面

3.配置外部应用(了解):就是不放在tomcat那个webapps里也能找到它的方法

(待补充)

4.配置虚拟主机(就是用网址http://www.itcast.cn访问我们的项目):

  第一步:将端口号改成80,因为默认端口号就是80

  第二步:在本机上可以解析域名为127.0.0.1,这需要修改 C:\WINDOWS\system32\drivers\etc\hosts文件添加网址与127.0.0.1的绑定关系

  第三步:在server.xml文件中添加一个<Host>(主机):里面的name=“http://www.itcast.cn”  appBase="F:/itcastapps"

5.server.xml里面元素介绍:

 http协议:请求,响应。如果是IE浏览器需要安装HttpWatch软件,来查看请求和响应,谷歌自带。

      请求: 请求格式
         请求行
         多个请求头信息:头名称:头值
         空行
         请求体
         Connection:Keep-Alive
      响应:响应格式
         响应行(协议/版本 状态码的解析)
         响应头(key/value格式)
           响应内容的MIME类型:Content-Type:text/html;charset=utf-8 
         空行
         响应正文

6.POST请求的内容:

  1.表单中的数据会自动使用url来编码

  2.utf-8编码格式里一个汉字占3个字节,GBK编码格式里一个汉字占2个字节

    中文转换:一个中文三个字节 每一个字节先加上128  然后转换成16进制 最后添加%前缀

  3.在上传的时候修改Content-Type里面的内容

  4.个别请求头(点击链接跳转到百度会添加一个请求头,直接输入网址则不会出现):Referer:http://localhost:8080/hello/index.jsp 能统计访问量

  5.响应码:200,请求成功
         404,请求的资源没找到,客户端错误的请求了资源
         500,请求资源找到了,但服务器内部出现了错误
         302,重定向,表示服务器要求浏览器重新发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址
         304, Last-Modifired:最后请求时间
        请求头:
         if-Modified-Since:把上次请求的index.html的最后修改时间还给服务器
         状态码:304,比较if-Modified-Since的时间与文件真实的时间一样时,服务器会响应304.且不会有响应正文,表示浏览器缓存的就是最新版本

  6.常用响应头

    HTTP/1.1  200  ok:响应协议为HTTP1.1,状态码为200,表示请求成功,ok是对状态码的解释
    Server:Apache-Coyote/1.1:服务器的版本信息
    Content-Type:文本格式;编码格式;响应体的编码格式
    Set-Cookie:响应给客户端的Cookie
    Data:响应的时间,这可能会有8个小时的时区差

   具体关于请求头与响应头:http://blog.csdn.net/qingkongyeyue/article/details/54925741 

javaweb三大组件:Servlet和Listener和Filter 

Servlet:一个项目里每个servlet都是处理不同的请求的,都是独一无二的。

作用:接受请求数据,处理请求,完成响应

实现Servlet的方式:

1.实现javax.servlet.Servlet接口

2.继承javax.servlet.GenericServlet类(一般用下面那种,比较方便)

3.继承javax.servlet.http.HttpServlet类

  

如何让浏览器访问servlet?

1.给servlet指定一个servlet路径(在web.xml中配置)

2.访问servlet路径,找到我们写的servlet实现类

(servlet类是由我们自己写的,对象是由服务器创建的,并由服务器来调用)

ServletConfig: servlet配置介绍:

HttpServlet:

HttpServlet extends GenderServlet(){

  void service(ServletRequest,ServletResponse)--生命周期方法

  强转两个参数为http协议相关的类型

  调用本类的service(HttpServletRequest,httpServletResponse)方法

  void service(HttpServletRequest,httpServletResponse)-->参数已经是Http协议相关的,使用起来方便得多

  它会通过request得到当前请求的方式

  根据请求的方式调用doGet()和doPost()方法

  doPost(){}  重写

  doGet(){}   重写

}

servlet与线程安全(servlet不是线程安全的,所以效率很高):

初级:不要在servlet中创建成员变量,只创建局部变量。

中级:可以创建无状态的成员(例如:只有方法的类)

高级:可以创建有状态成,但是状态必须为只读的

让服务器在启动的时候就创建servlet:

<load-on-startup>0</load-on-startup>//配置在web.xml的servlet里面的信息,设定了servlet的启动优先级,数字越小优先级越高。

一个servlet可以绑定多个url-pattem,这样会有多种途径来访问一个servlet

在url-pattem中可以使用通配符  *  .  ,这样servlet可以绑定一组url,例如/*,就可以匹配所有的URL,一个url中最多出现一个通配符,而且*不能出现在两端

Tomcat文件下config里面的web.xml了解:

首先它是所有web.xml的父文件,写在它里面的文件相当于写在每一个web.xml之中

servlet里面有个叫default的servlet,匹配优先级最低,界面对应404界面。

servlet与反射:Tomcat使用类名创建对象,调用方法,就是通过反射来做到的

ServletContext:一个项目只有一个这个对象,多个servlet之间可以用它来传递数据;
这个对象在tomcat启动时启动,销毁时销毁。

ServletContext是javaweb四大域对象之一:

  PageContext

  ServletRequest

  HttpSession

  ServletContext

所有的域对象都有存储数据的功能,因为内部有个Map用来存储数据,

ServletContext用来操作数据的方法:

void setAttribute(String name,Object value):存数据,一样的名字的值会覆盖,和map相同

Object getAttribute(String name):取数据,根据数据的名字来取数据的值

Servlet可以获取初始化参数,但这个参数是局部参数。换句话说,一个servlet只能获取到自己的初始化参数,不能获取到别人的。

ServletContex可以获取到应用的初始化参数与servlet初始化参数不一样

配置所有servlet的公共初始化参数(直接被根元素所包含):

<context-param>

  <param-name>xxx</param-name>

  <param-value></param-value>

</context-param>

使用ServletContext.getInitParameter("xxx");

获取文件或者文本存放的真实路径:

this.getServletContext().getRealPath("/index.jsp");

获取资源流,即以输入流的形式获取资源

例如:获取a.txt资源流:InputStream in=servletContext.getResourceAsStream("/a.txt");

获当前路径下所有资源的路径

this.getServletContext().getResourcePaths("/WEB-INF");

获取类路径下的资源:

首先获取到ClassLoader,用this.getClass().getClassLoader()

然后用它的方法getResourceAsStream("要读取文件的路径"),得到一个InputStream

---恢复内容结束---

时间: 2024-08-06 20:04:47

javaweb学习路线-Tomcat与Servlet-1的相关文章

javaweb学习路线-myeclipse的配置和Servlet之request和response

Myeclipse的配置 1.General -->Workspace -->utf-8  //设置项目的编码格式,项目决定文件,文件决定文本 2.General -->Editors -->Associations -->JSP -->MyEclipse JSP Editors 3.搜索jsp -->utf-8 4.Java -->Instralled JREs -->添加 5.tomcat配置,先配置java环境,再配置本地tomcat环境 6.调

Javaweb学习路线

java-web-j2e学习建议路线 分类: JAVA学习之路 2012-09-10 23:56 10399人阅读 评论(2) 收藏 举报 java数据库j2mej2sehibernate框架 首 先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME. J2ME,The Mi

javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)

一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录,在firstServlet目录下创建WEB-INF/classes目录 在classes目录下,写servlet程序. 类FirstServlet.java 1 /** 2 * 3 */ 4 package com.hlcui.servlet; 5 6 import java.io.IOExcept

JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomcat的目录结构* bin目录:存放tomcat的启动和终止脚本 * startup.bat 启动脚本 * bootstrap.jar,启动脚本最终执行的java程序 * org.apache.catalina.startup.Bootstrap * shutdown.bat 终止脚本 * conf目录

JavaWeb学习(二)---Tomcat服务器学习和使用(一)

本文整理自孤傲苍狼大大的博客,,, 一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改 例如:将Tomcat服务器的启动端口由默认的8080改成8081端口 Tomcat服务器启动端口默认配置 1 <Connector port="8080" protocol="HTTP/1

javaweb学习总结二十三(servlet开发之线程安全问题)

一:servlet线程安全问题发生的条件 如果多个客户端访问同一个servlet时,发生线程安全问题,那么它们访问的是相同的资源.如果访问 的不是相同资源,则不存在线程安全问题. 实例1:不会产生线程安全问题,因为每个客户端发送请求,都会创建一个线程,都会创建一个count 不存在资源共享的问题. 1 public void doPost(HttpServletRequest request, HttpServletResponse response) 2 throws ServletExcep

javaweb学习总结(九)—— 通过Servlet生成验证码图片

一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.response.study; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5 import java.awt.Graphics2D; 6 import java.awt.image.Buff

JavaWeb学习之什么是Servlet、如何使用servlet、为什么这样使用、servlet的虚拟路径(2)

1.什么是Servlet? * 服务器端Java程序,servlet需要交给服务器来运行. * 与javax.servlet.Servlet接口有关的java程序 2.如何使用servlet?[必须] * 创建web项目 * 创建一个类,并实现Servlet接口 * 交给服务器运行 /WEB-INF/web.xml <!-- 注册servlet <servlet>标签:进行servlet注册 <servlet-class>标签:确定servlet类所在位置 * 内容:需要注册

JavaWeb学习(5.5)---在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

本文整理自孤傲苍狼大大的博客,,, 在servlet的service方法中获取ServletContext对象也行出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取ServletContext对象 2 ServletContext servletContext = this.getServletContext(); 原来是重写了 init(ServletConfig)方法,但重写的init方法内部没有调用super.init(config);