zoukankan      html  css  js  c++  java
  • java之servlet小记

    Servlet               service+applet                   服务+小程序

             Java是语言,像cc#等一样,是一门计算机语言,servlet是java里面的一种类,一般用于基于web的程序里面,用来接收页面客户(即客户端)发送来的请求,并且处理这些请求。Servlet是在服务器运行的java类。

             Servlet是运行在服务器上的一段代码,这段代码能被页面通过http请求访问到,即能为页面提供服务。

             生命周期:

                                载入,一次

                                初始化,一次

                                服务,n次

                                销毁,一次

             几个重要对象:

                       request对象:请求对象,服务器将请求信息封装成了一个对象,这个对象就是request,因为java是面向对象的。

                                其作用就是用来获取请求参数的。

                                                   获取单个参数:request.getParameter();

                                                   获取多个同名不同值参数:(checkbox)request.getParameterValues();

                                其遵循http协议,该对象里面包含了

    请求行:

    请求头:

    请求实体:

    网络信息:

                       Response对象:响应对象,服务器在接收到请求时创建这个对象。

                                                                               设置对象属性。

                                其遵循http协议,该对象里面包含了

                                         响应行:(了解)

                                         响应头:

    addHeader()可以设置自定义且可以设置两个同名不同值的head

    setHeader()设置原有的响应头

                                         响应实体:response.getWriter.write()

                                                            response.getWriter.print()

                       响应消息中的数字有特殊含义:

                                1消息,2成功,3重定向,4客户端错误,5服务器错误

                                         常见错误:404,url写错,空跑服务器,web.xml写错

                                                              405,在代码中调用了父类的doget/dopost方法

                                                            (解决:重写service方法,不调用父类的)

                       Cookie对象:在服务器端创建,在客户端保存;其可以保存小量的数据,在客户端解决无状态的问题。

                                         通过响应对象传送回浏览器;

                                         通过new方式创建;

                                         保存:若设置了有效时间,则保存在客户端,否则保存在浏览器内存;

                                                            有效时间Maxage,单位为s,如7天,即为7*24*3600

                                         路径:设置路径,访问特定的地址才会携带这个cookie;

                                         获取:request.getCookies();

                       实例:三天免登陆

                                         用户上次登录过:1、勾选了三天免登陆,2、未勾选

                                         用户从来没有登录过。

                                                            进Aservlet的时候,判断是否携带了cookie,若果携带了就拿到cookie值进行数据库操作;

                                                            如果数据库有记录,就直接跳转到index.jsp直接登录;否则,需要输入账号密码登录。

                       Session对象:标识浏览器和服务器之间的一个会话,一个会话可以包含多个请求,这些请求的数据可以互相共享。

                                         作用:保存数据,在服务器端解决了http无状态的问题;

                                         创建:第一次发出请求的时候创建session;

                                         是否可以取消cookie,因为session的传递需要cookie;

                       创建servlet的步骤:

    1、  新建一个web项目,确定javaEE版本号(5.0/2.5),jdk版本号(1.6/1.7),jstl版本号(1.2);

    2、  新建一个包,创建class,继承httpServlet,让普通的class成为一个servlet,删掉super.service,重写父类的service方法;

    3、  在web.xml中注册所写的servlet,并且让一个url或者多个url与所写的servlet进行映射(绑定),告诉服务器,我所写的servlet,及其在哪个包下;

    4、  将项目部署到tomcat服务器上;

    5、  打开浏览器访问我们的web项目。

    JavaEE 5.0 lib  web开发需要的jar包

                                         Jstl 1.2 lib  web开发需要的jar包

                                         Webroot web项目的根节点

                                                            Meta-inf  项目结构信息

                                                            Web-inf  当前web项目的配置信息

                                                                               Lib 放当前项目所依赖的jar包

                                                                       Web.xml(很重要)

    <servlet>

                  <servlet-name>firstServlet</servlet-name>   名字

                       <servlet-class>com.bjsxt.lc.FirstServlet</servlet-class>  在哪个包下

               </servlet>

                  让一个servlet与一个url进行绑定

                 <servlet-mapping>

    <servlet-name>firstServlet</servlet-name>   名字,与上面的对应

    <url-pattern>/firstServlet</url-pattern>    在网址栏写的时候所写内容,项目名字下的servlet名,以方便找到加载项

                 </servlet-mapping>

    打开浏览器访问

               http://192.168.1.240:8080/firstWebProject/firstServlet

               http://192.168.1.240 到这里就访问到了电脑

               http://192.168.1.240:8080到这里就访问到了tomcat服务器

               http://192.168.1.240:8080/firstWebProject 访问到了tomcat服务器上你指定的项目

    http://192.168.1.240:8080/firstWebProject/firstServlet  访问到了指定项目中的指定的servlet

             servletConfig对象

    对单个servlet的配置文件封装而来的对象。

                                作用:     获取servlet的名字;

                                                   获取servlet的初始化参数;

                                                   通过单个servlet的配置信息,获取全局servlet的信息,即通过servletConfig对象获取servletContext对象;

                                                   设置和获取全局的servlet配置信息;

                                                   获取项目部署后的真实路径;

                                                   获取项目名;

                                                   获取webroot下的文件。

    涉及到的英文含义:

    DAO                   Data Acess Object数据访问接口,顾名思义就是与数据库打交道。

                       功能:

    1、         用来封装data source,比如Connection connection = DAOFactory.createConnection();就可以把Driver,url,username,password这些放在DAO中,以后要更改数据库的类型,比如要把MySQL换成Oracle的话,只需要更改DAOFactory里面的getConnection()里面的Driver,url这些就行了。

    2、         DAO也是把对数据库的操作,比如最基本的crud操作,全部封装在里面,比如要插入一个新用户,那么在DAO中只需要提供一个insertUser(User user)这一个方法就可以了,具体的操作是在DAO中实现的。

    java是语言,像C、C#等一样是一门计算机程序语言,servlet是java里面一种类,一般用于基于web的程序里面,用来接收页面客户即客户端发送来的请求,并且处理这些请求。Servlet是在服务器运行的java类。为了便于分层,使得程序更具扩展性,层次较清晰,或者为了方便维护的目的,可以将访问数据的操作分出来。为了提供一个数据层操作的一个标准,就设计出DAO接口。DAO接口是提供一套规范,然后在写具体的数据操作类的时候,继承DAO接口,实现DAO接口的方法。而程序员在使用数据操作的时候,只需要看DAO接口提供的方法就行了,不用管数据操作类具体操作的步骤。这样就分出层次。

    签名:每一天都是这辈子最年轻的一天。
  • 相关阅读:
    HDU 1728 逃离迷宫
    程序猿求职之道(《程序猿面试笔试宝典》)之不想签约,但也不想轻易放弃机会,怎么办?
    职场生涯(—)
    Python学习笔记24:Django搭建简单的博客站点(二)
    &quot;高可用方案工具包&quot; high availability toolkit 1.1
    [Swift]LeetCode421. 数组中两个数的最大异或值 | Maximum XOR of Two Numbers in an Array
    [Swift]LeetCode420. 强密码检验器 | Strong Password Checker
    [Swift]LeetCode419. 甲板上的战舰 | Battleships in a Board
    [Swift]LeetCode417. 太平洋大西洋水流问题 | Pacific Atlantic Water Flow
    [Swift通天遁地]七、数据与安全-(11)如何检测应用程序中的内存泄露
  • 原文地址:https://www.cnblogs.com/pumkinzs/p/6014029.html
Copyright © 2011-2022 走看看