Servlet知识

  Servlet环境配置 
JAVA_HOME=/XXX/XXX/(JDK路径,bin的上一层目录) 
CATALINA_HOME=/XXXX/XXX(tomcat的绝对路径 windows中 X:\xxx\xxx) 

            Tomcat使用 
在启动Tomcat时,是运行Tomcat的bin目录下的startup.sh(windows中使用startup.bat) 
Linux中要显示后台的具体信息,则用catalina.sh run 代替startup.sh命令。 
判断Tomcat是否启动成功,可以在浏览器的地址栏中使用 http://localhost:8080/ 或 http://127.0.0.1:8080/ 可以访问到tomcat的主页就表示启动成功。 
要想停止tomcat服务器,可使用shutdown.sh(windows中使用shutdown.bat),如果直接关闭启动窗口,就会造成8080端口占用错误,这时可以再使用shutdown.sh关闭一下服务器。 

        Servlet开发步骤 
编写servlet源代码,注意servlet的结构。 
编译servlet,需要servlet-api.jar文件(位于$Tomcat\common\lib\目录下;加入classpath环境变量中) 
部署servlet 
   编写配置文件web.xml:其中包括servlet burl与 servlet name的映射, 
   以及servlet name 与  servlet class name的映射。 
构造web应用程序目录结构如下: 
└─MyWebApp           应用程序名 
   └─WEB-INF 
       └─classes 
       └─lib 
   └─*.html/*.jsp 
配置文件web.xml放在WEB-INF目录下 
servlet类文件放在classes目录下 
将整个应用程序目录拷贝到  $Tomcat\webapps\  目录下 

使用此结构的优点 
一个Web容器中可以共存多个Web应用程序。 
Web容器知道该到何处寻找装入Web应用程序所需的类。 

                  web.xml文件的写法 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation=http://java.sun.com/xml/ns/j2ee 
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd version="2.4"> 
  <servlet> 
<servlet-name>IpLogServlet</servlet-name> 
<servlet-class>tarena.servlet.lc.IpLogServlet</servlet-class> 
   <init-param> 
<param-name>filename</param-name>        //getServletConfig().getInitParameter(); 
<param-value>c:/iplog.txt</param-value>  
   </init-param> 
   <load-on-startup>2</ load-on-startup > //启动服务器时就创建该servlet实例,必须是正数,小的数先加载 
  </servlet> 
  <servlet-mapping> 
<servlet-name>IpLogServlet</servlet-name> //要和servlet标签中的相同 
<url-pattern>/lc/iplog</url-pattern> //指定servlet相对于应用目录的虚拟路径 
  </servlet-mapping>                       /xxx/xxx(绝对路径),xxx(相对路径) 
</web-app> 

绝对路径开头的“/”代表 http://localhost:8080/ 

             测试应用 
在tomcat服务器中,访问应用下的资源可以在端口号后加上web应用文件夹的名字,就可以看到资源 
http://localhost:8080/应用文件夹名/url-pattern 
静态页面只能放在web应用的文件夹下,不能够放在WEB-INF文件夹下,WEB-INF文件夹中的资源是受保护的,不能够通过网络访问到。 

       Servlet的调用过程 
用户通过浏览器向web服务器发送请求 
http://serverip:port/appname 
服务器为用户定位资源 
   静态资源:/a.html /a/b.html (这里的路径是针对web应用文件夹目录)读文件并把内容发送到客户端。 
   动态资源:解析web.xml定位Servlet类的名字。 
装载类(WEB-INF/classes | WEB-INF/lib/*.jar) 
创建该对象的实例 
Servlet ser=(Servlet)(Class.forName("servle的类名")).newInstance(); 
//我们写的Servlet一定要实现Servlet接口或者继承实现了Servlet接口的类 
ser.service(request,response); 

     用Servlet处理表单数据 
FORM元素的属性 
  action: 用来指定要处理FORM数据的Servlet的URL 
  method: 指定数据传送给HTTP服务器的方法 
解析请求 
  getParameterNames:可以获得一个迭代器Enumeration,通过这个迭代器,来获得form表单中参数的名字。 
  getParameter: 返回表单中参数名(区分大小写)对应的值(没有这样的参数,返回null; 没有任何值,返回空String);多参数同名时,只取一个。 
  getParametervalues: 返回表单中参数名(区分大小写)对应的字符串数组(没有这样的参数,返回null;只有一个值,返回值为单一元素组); 

            get & post 
在浏览器的地址栏操作按回车键,或者是热连接,都是get请求,form的method属性如果不指定,默认为get请求(传的数据不能太大,且表现为明文)。 
get请求,会将参数显示在浏览器的地址栏上,其显示格式,在地址之后会以?开始,以'&'分隔参数,可以通过HttpServletRequest对象的getQueryString()方法来获得get请求的参数值。 
post请求:ServletRequest对象的getInputStream()方法可以获得一个由Socket得来的输入流,可以使用这个流来实现文件的上传。getReader()方法可以直接获取post请求的参数。 

     Servlet的生命周期 
创建Servlet对象,通过服务器反射机制创建Servlet实例,默认第一次请求时才会创建。 
调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次。 
响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。 
在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值