Servlet相关知识


 1.
什么是servlet

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。Servelt解决了html不能进行交互的问题,它能根据不同的用户,调用数据库的数据,生成动态的网页,刚接触Sevlet感觉它是一个比较有用的知识。

2.配置servlet运行环境

Servlet虽然很好用,但是对于刚入门的人来说,配置它的运行环境时候可是相当的纠结的,可以这么说,各种各样的问题都会有,这个我是深有体会,不同的eclipse,不同的电脑,出现的问题都会不太一样,不知道为什么。首先要下载tomcat服务器,servelte的本质就是一个在tomcat服务器上运行的java类。

创建一个简单的servlet流程图:

 



 

下载tomcat后直接解压就行  

 

变量名:Java_home 路径:JDK的安装目录,如C:\Program Files\Java\jdk1.6.0_20

 变量名:tomcat_home 路径:tomcat所在目录,如D:\tomcat\apache-tomcat-7.0.0            

 如果是eclipse的话就创建动态web工程,如果是myeclipe就直接创建web                                           

 如果不导入的话,servlet类就会报错                         

 创建servlet时,默认的是会有doPost(),doGet()两个方法,                                                  

有两种方法:打包为war的包,将其放到tomcatWebapps目录下,启动tomcat                    

输入url,则可以请求到servlet网页

 

 

3.web.xml文件的配置

<servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>FirstServlet</servlet-name>

    <servlet-class>cn.netjava.Servlet.FirstServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>FirstServlet</servlet-name>

    <url-pattern>/servlet/FirstServlet</url-pattern>

</servlet-mapping>

这是主要的配置,其中<description><display-name>这项可有可无,<servlet-name>这项为自己编写的servlet名,<servlet-class>为编写的servlet所在的包及servlet类名,<servlet-name>为给servlet取一个别名,<url-pattern>为浏览器请求servlet时的路径,在浏览器输入的url为:http://localhost:8080/程名字/加上<url-pattern>/servlet/FirstServlet</url-pattern>中的路径,当<url-pattern>/*</url-pattern>url直接就是http://localhost:8080/工程名字/加上任何的字符,当<url-pattern>/.do</url-pattern>时,urlhttp://localhost:8080/工程名字/加上以.do结尾的字符

 

4.接收html传来的参数

比如:

在一个html网页

<html>

<head><title>servlet参数传递事例</title></head>

<body>

<from method=”post” action=”myServlet”

<p> 帐号:<input type=’text’  name=’userName’/></p>

<p> 密码:<input type=’password’ name=’pwd’/></p>

<p> <input type=’submit’ name=’提交’></p>

</form>

</body>

</html>

当点击提交按钮时,则向myservlet发送请求,只要在myserlet中的doPost()方法中通过调用String name=request. Parameter(UserName)来得到用户输入的信息,如果想接受额外的数据,则修改<from method=”post” action=”myServlet?id=’’要传输的数据””如果要传输多个数据,action=”myServlet?id=“数据1”?pwd=”数据2”’’,以此类推,最后在servlet中调用Parameter(“id”)来取得数据1,以此类推。

 

 

5.servlet中的几个常用对象

 


 

 

5. session机制相关知识

 

 

对象

说明

ServletRequest

保存的键值仅在下一个request对象中可以得到,常用做在转发请求时共享数据;

Session

做用域是一个用户会话范围,从session第一次创建直到Session因超时或客户端关闭之前,数据会一直存在;Session常用做存入某个用户相关的数据对象。

servletContext

代表了servlet环境的上下文,只要某个web应用在启动中,这个对象就一直有效,所以它是数据存活范围(时间)最大的一个;常用存放Web应用程序全局性的数据,例如登记服务器在线人数的数据,可以保存到这个对象中

 

 

从图可以看出,这三个对象都是用来存存数据的,其中session是比较常用的,比如他可以用来存储登录的用户名,这样就可以实现在线的人数统计。

 

6.servlet转发请求

Servlet转发有三种方法:

Include  表将将url中的内容包含到当前的servlet输出当中,在服务器端完成,一般称做包含。

Forward  将当前requestresponse交给指定的url处理,一般称做转发请求,在服务器端完成,客户端地址栏看到的路径还是当前servlet的路径。

sendRedirect  指示客户端重新发起一次请求,第二个请求指向其参数url。一般称做重定向,客户端的地址栏将改变为url值,是由客户端发起的第二次请求。

 

比如要转发一个login.html网页。

则应该是request.getRequestDispatcher("login.html").include(request, respon)

或者request.getRequestDispatcher("index.html").foward(request, response);再者response.sendRedirect("login.html");

其中:includeforward方法浏览器上中的url都不改变,sendRedirect则是从新发送请求,url已经改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值