Tomcat的概念与相关方法

了解Tomcat服务器


什么是tomcat??

            Tomcat 服务器是一个 免费的开放源代码的Web 应用服务器,属于轻量级应用 服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
            对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器, 可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。
            实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
            诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和 IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

1:tomcat--通俗来说

            是ApacheSoft组织下的一款用于扩展Web服务器的一个Servlet容器。
                  此款软件,也需要在jre环境下运行启动。
        

 2.myeclipse配置tomcat环境。

     找到tomcat选项中的 x.x,配置相应版本的tomcat容器。
  (1) 选中enable
              选择tomcat的父路径
  (2) run mode
       如果配置的x.x与tomcat版本不一致时,在执行(3)
  (3)选择paths中的
       ADD JAR/ZIP按钮,导入tomcat文件夹bin中的三个jar包。

3:测试tomcat是否配置成功
       打开浏览器:
       输入:http://localhost:port
      出现 猫,即正常。
 
  servlet 
            Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
            狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何 实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来 扩展基于HTTP协议的Web服务器
               一些其它的基于Java的Web服务器开始支持标准的Servlet。
Servlet:--通俗来说
         是Sun公司开发的用于扩展Web服务器的组件规范。
                 组件:是一个能实现部分功能,需要部署在一定环境下才能运行的模块 。
                 容器:可以运行组件的一个程序。

如何开发一个Servlet:

   1:编写符合规范的Servlet组件(实现HttpServlet接口,重写service方法)
   2:引用第三方jar包,编译成class文件
   3:需要打包成以下结构:
     appName
            --WEB-INF
                   --web.xml
                   --classes:存放的class文件
                   --lib(可选)
            --login.html
   4:将打包的结构部署到tomcat中的webapps文件夹下。
   5:启动tomcat
           在浏览器中输入:
     http://ip:port/appName/要访问的功能url  
     web.xml
     
<servlet>
		<servlet-name>hello</servlet-name> //一个昵称
	    <servlet-class>com.hyxy.HelloServlet</servlet-class> //包名
  </servlet>
  <servlet-mapping>
		<servlet-name>hello</servlet-name> //与上面一致
	    <url-pattern>/HelloUrl</url-pattern> //浏览器请求的url相同
  </servlet-mapping>
     
Hello World实例
package com.hyxy;
 
public class HelloServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
			PrintWriter pw = resp.getWriter();
			pw.println("Hello World");
			pw.close();
	}
}

浏览器发送请求时,可能会返回下述错误代码:

错误代码: servlet容器向浏览器返回的状态码   404: 访问路径不存在
                   原因: appName写错,webapps下的名字
             url写错
             servlet-name写错
   405:方法不被允许使用
                  原因:service名称不一致
                           方法内的参数类型不符合规范
   500:
                不是一个servlet组件
                 原因:没继承HttpServlet
              servlet-class中的内容写错了类全名                   

HTTP 简介

           HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。。

           HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

               

HTTP 工作原理

                    HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

            Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。

            Web服务器根据接收到的请求后,向客户端发送响应信息。

            HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

       

以下图表展示了HTTP协议通信流程:

cgiarch


http协议:

            定义了浏览器与web应用之间的数据格式,包含了请求与响应。
请求:浏览器向服务器发送数据
请求数据包含:
          请求行:请求方法+请求路径+协议种类+版本
          消息头:都是以键值对的形式存储的。
            比如: content-type消息头存储字符编码集。
 实体内容: 只有post请求才会有数据
响应: 服务器向浏览器发送数据
         响应数据包含:     
           状态行:协议种类+版本号+状态码+状态信息
           消息头:以键值对的形式存储的
          响应数据: 经过业务逻辑运算后要发送给浏览器的数据。
                       

Servlet如何处理HTTP协议

    1.Servlet容器会将接收的信息进行封装。封装到 HttpServletRequest这个类型的一个对象上。
          我们就可以从request这个对象上获取我们想要的数据。
          比如:获取版本号
                    用户提交的数据
                    字符集
                    
    2.Servlet容器在响应浏览器时,也会将一些数据,封装到
    HttpServletResponse类型的一个对象上。发送给浏览器后, 浏览器会自动解析
            如:绑定消息头
                  字符集
                  状态码等。 
                  
    注意:每一次请求与响应,Servlet容器都会创建一个request和Response                              
                    
参数的处理:
请求对象的方法
  getParameter(""):
获取浏览器页面的value值。参数要传name属性的值。
返回字符串类型,
页面上没有的name值,返回null.

请求方法:
    默认的是get请求方式:
              特点:提交的数据都会显示在地址栏上,
                        可以提交数据的大小最多为4k
                       相对来说不安全   
  post请求方式:
                        数据不显示在地址栏上
                         大小无限制
                         相对来说安全                     

处理中文乱码问题:

   服务端接收浏览器端的数据时:
   get请求:
         服务端默认用的是ISO-8859-1字符集
    String username = request.getParameter("ename");
    byte[] bs = username.getBytes("iso-8859-1");   
    username = new String(bs,"UTF-8");
          此种方法也适合post请求
  
   post请求:
     request.setCharacterEncoding("utf-8");
    
  浏览器端接受服务端的数据出现乱码时:
         使用response对象设置消息头 
       response.setContentType("text/html;charset=utf-8");   
    <meta charset="utf-8">是消息头
        
addEmp.html在浏览器页面汉字乱码
    解决方法:怎么调字体?
            全选html代码(复制),然后单击右键html文件选择utf-8;
            浏览器没有出现乱码了,这时候html代码里面出现乱码,
            然后全选粘贴刚刚复制的代码块。


从浏览器发送的请求,得到的数据都是字符串类型。
根据相应情况,需要转换成其他类型




 

 
    
       
     
                                 

猜你喜欢

转载自blog.csdn.net/xiaozelulu/article/details/80282011
今日推荐