web基础1-java服务器端组件

来源:互联网 发布:时光知味 在线阅读 编辑:程序博客网 时间:2024/05/21 09:33

下面的文章只是用于加深自己的的记忆,并没有什么含量,如果各位大侠看到了话,如果有什么不好或者不对的地方,欢迎指正,谢谢!

1.1 HTTP协议

    | -get请求

        通过地址中的请求参数来传递数据(传递的数据量比较小,只传输文本,会在地址栏中显示提交的内容)

        GET /table.html HTTP/1.1
        … … //协议头信息
        Host: 127.0.0.1:8888
        Connection: Keep-Alive

 

    |-post请求

       通过协议传递数据(传递数据量可以较大,和get请求一样不是很安全,但是比get请求安全一些)

        request的信息:

        POST /web03/add_emp.jsp HTTP/1.1
        Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml,            

         image/pjpeg,  application/x-ms-xbap, application/x-shockwave-flash, */*
        Referer: http://127.0.0.1:8888/web03/emp_form.jsp

         ... ...//一些信息

         Host: 127.0.0.1:8080
         Content-Length: 31
         Connection: Keep-Alive

 

看到302了吗?那表示重定向,因为我的程序里面当提交了一个表单之后,页面将会转到另一个页面。

         HTTP响应:

          状态码:200 500 404 302 等等

          200:表示成功响应

          500:表示服务器错误

          404:表示地址错误

          302:表示重定向

          response的信息:

         HTTP/1.1 302 Moved Temporarily
         Server: Apache-Coyote/1.1
         Location: http://127.0.0.1:8080/web03/emp_list.jsp
         Content-Type: text/html(响应数据的格式)
         Content-Length: 0(响应数据的长度)

         Date: Wed, 24 Nov 2010 11:10:42 GMT

 

        在数据提交的的时候会出现一个编码的问题(在提交中文数据时可能会出现乱码

所以先要在显示页面上加上<%@page contentType="text/html; charset=UTF-8"%>

之后在页面中写上request.getCharacterEncoding()方法进行统一的编码设置,在括号中写字符编码,

如GBK、UTF-8等等。还要注意的是request.getCharacterEncoding("GBK")要写在第一个request.getParameter("user")之前。

 


  java中URLEncoder和URLDecoder类封装了这样的编码方法:

附上代码:

 

输出为:

%E4%BD%A0%E5%A5%BD
你好

 

1.2 Servlet【获取请求信息(解析),生成响应(根据规则)】

先看看百度百科对其的介绍:

       Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

 


       Servlet容器(如Tomcat)负责处理客户请求、把请求传送给Servlet并把结果返回给客户。

Servlet生命周期:

1、Servlet容器创建Servlet的一个实例

2、容器调用该实例的init()方法

3、如果容器对该Servlet有请求,则调用此实例的service()方法

4、容器在销毁本实例前调用它的destroy()方法

5、销毁并标记该实例以供作为垃圾收集

一旦请求了一个Servlet,就没有办法阻止容器执行一个完整的生命周期。


 

下面写一个Servlet

一个Servlet要继承HttpServlet,并实现其service()方法,service()方法中要传两个参数,一个是HttpServletRequest    request,另一个是HttpServletResponse     response,如字面意思,他们分别是请求 和响应,这两个类很重要,以后会经常遇到。

 

1.3 JSP

先说说JSP和Servlet的关系,这是面试时会经常遇到的问题。JSP本质上就是Servlet,JSP引擎巴JSP以某种方式转化为Servlet。只是他们的侧重点有所不同而已,JSP主要用于显示,他是在HTML语言中加入java代码。当某个JSP被配置在Tomcat服务器时,你找到Tomcat目录下的webapps下的项目,找到的JSP和页面中的有所不同,他已经被写成了Servlet(包括内置对象)。

 

|-jsp语法:

  <%= java 表达式 %>    Jsp引擎遇到这种形式,就通过print方法降"="后面的内容输出到客户端。

 

  <%  java 代码%>  Jsp引擎遇到这种形式,就将“java代码”中的内容按原样出入有JSP生成的Servlet源代码中。

 

|-jsp指令(写在JSP文件中,指示JSP引擎在生成Servlet的时候的一些定制):

  1、<%@page  .......%>如:<%@page  import="java.sql.*"%>

                                                   当需要加多个包时,中间用逗号隔开,也可以在写一条指令

                                                 <%@page contentType="text/html; charset=UTF-8"%>

 

  2、<%@include  file=""%> 如:<%@include  file="emp_list.jsp"%>

 

  3、<%@taglib uri=""  prefix=""%>

        功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
                    当页面引用了用户自定义标签时,taglib指令用于引用自定义标签库,并指定标签的前缀。

                   如:<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 

 

哈哈,我的第一篇小笔记!过几天继续,话说写这么简单的文章还是很难,看来我要好好练习才行啊!

刚开始写真的不知道顺序怎么安排,什么不懂就写什么,应该是一直能够不错的提高自己能力的一中方式!

 

 


 

 

 

 

 

 

 

 

 

                  

 



 

原创粉丝点击