`
lgl669
  • 浏览: 173811 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java Servlets(一)

    博客分类:
  • java
阅读更多

Java Servlets
-----------------------------------------------------------------------------------------------------------------------------------------
Servlet2.4:是sun公司提出的一个标准,作为容器提供商和我们开发人员必须按照这个标准来开发容器和
开发web应用;开发人员实现Servlet的接口,service方法是由容器调用的,并且会传进来request和
WEB应用的目录结构;
servlet中的方法由所处的容器来调用;
<form method="post" action="helloservlet">
</form>
Http请求:包括请求头和请求体
Get请求:浏览器提交的数据是放在请求头部的;
Post请求:浏览器提交的数据是放在请求体部的;
Web application server:
Tomcat:
opt/jakarta_tomcat5.0.28
一、tomcat和servlet介绍
Tomcat的目录结构

1) bin:主要存放tomcat的一些可执行文件,比如:startup.bat,shutdown.sh;
2) common:主要用来存放tomcat以及所有的web应用都可以用的一些类或则.jar文件;
3) conf:其中包含着Tomcat的配置文件,主要是server.xml、web.xml和tomcat-users.xml等;
conf/server.xml:修改Tomcat的端口
      conf/web.xml:设置默认主页
      conf/tomcat-users.xml:添加Tomcat的Admin和Manager用户
      conf/Catalina/../新建xml文件,指定docBase,可以设定Tomcat应用的
路径,默认是在Tomcat/webapps目录
4) logs:包含着Tomcat的日志文件以及应用的日志文件;
5) server:存放只有tomcat能使用的类或者jar文件以及tomcat自带的web应用,包含着运行Catalina
容器所需要的文件以及类库;
6) shared:存放所有的web应用共享的.class和.jar,但是tomcat不能使用;
7) temp:用来存放临时文件;
8) webapps:存放我们开发的web应用;
9) work:通过jsp生成的servlet类存放的目录;
-------------------------------------------------------------------------------------------
在windows下配置tomcat:
CATALINA_HOME=
-------------------------------------------------------------------------------------------
home目录下:
1.打开控制台;
2.vi .bashrc
3.export JAVAHOME=/opt/java/jdk/jdk1.5.0_06
  export CATALINA_HOME=/opt/jakarta-tomcat-5.0.28
4.保存配置文件;
5.source  .bashrc;
-------------------------------------------------------------------------------------------
启动tomcat
1、在命令行窗口启动;需要配置环境变量;JAVA_HOME(必须),CATALINA_HOME(必须),
PATH(可选)
   执行%CARALINA_HOME%\bin下startup.bat启动tomcat,shutdown.bat关闭tomcat;
2、在eclipse中启动;无须配置系统环境变量;通过myeclipse插件集成tomcat;
-------------------------------------------------------------------------------------------
WEB应用的目录结构:
Servlet
--WEB-INF
--classes存放开发的java类,比如说是servlet类
--lib 存放第三方的jar包,比如说ojdbc14.jar
--web.xml 对servlet进行描述
--.htm  .html  .jsp
就编写好的上述程序放入%CATALINA-HOME\webapps\中;
url-pattern
<servlet-name>hello</servlet-name>

<url-pattern>/hello</url-pattern>
----------------------------------------------------------------------------------------------------------------------------------
Http协议:是应用层的协议,他是无状态的。它是架在tcp/ip传输层协议之上的,对传输数据的格式做
了一个定义。
-------------------------------------------------------------------------------------------
CGI和Servlet的优缺点:
CGI程序可以有多种语言编写,但是服务器端处理请求使用进程,消耗服务器端资源;
Servlet只能由java编写,服务器端处理请求使用线程,移植性好;
-------------------------------------------------------------------------------------------
什么是Servlet?
JEE规范的一部份,是用java语言编写的服务器端程序,
用于创建动态web页面,不依赖于具体的协议,必须运行于web容器中。
-------------------------------------------------------------------------------------------
在tomcat根目录下的conf目录下修改:
配置tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="admin,manager"/>
</tomcat-users>
-------------------------------------------------------------------------------------------
配置server.xml
<Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />
-------------------------------------------------------------------------------------------
在CATALINA/localhost下面配置一个新的文件:admin.xml
其中path里面填写的是你的工程名字,docBase里面填写的是WEB-INF的路径;
<Context path="/admin" docBase="/home/briup/works/Servlet/WebRoot"
        debug="0" privileged="true">
  <Logger className="org.apache.catalina.logger.FileLogger"
             prefix="localhost_admin_log." suffix=".txt"
          timestamp="true"/>
</Context>
-------------------------------------------------------------------------------------------
本来面目:
<url-pattern>/hello</url-pattern>
访问时在地址栏只能写
http://127.0.0.1:8080/Servlet/hello
为了加强灵活性和易用性,方法如下:
后通配:
<url-pattern>/hello/*</url-pattern>

访问时在地址栏里写
http://127.0.0.1:8080/Servlet/hello/asdasd/asdasd/asdasd
都是可以的;
前统配:
<url-pattern>*.hello</url-pattern>
http://127.0.0.1:8080/Servlet/*.hello
http://127.0.0.1:8080/Servlet/a.hello
http://127.0.0.1:8080/Servlet/abc/a.hello
都是可以的;
-------------------------------------------------------------------------------------------
HttpServlet继承自GenericServlet,其中的service方法自动实现;
 GenericServlet的调用方法:
容器
——————>service(ServletRequest req,ServletResponse res)
————>service(HttpServletRequest req,HttpServletResponse res)
        ——METHOD="GET"——>doGet(HttpServletRequest req,HttpServletResponse res)
——METHOD="POST"——>doPost(HttpServletRequest req,HttpServletResponse res)
-------------------------------------------------------------------------------------------
表单的处理:
<FROM    METHOD="POST"    ACTION="servlet/FormServlet">
-------------------------------------------------------------------------------------------
获取客户端提交的信息:
1)HttpServletRequest.getParameterNames():获取所有表单信息
2)HttpServletRequest.getParameter(key):获取指定key的信息
3)HttpServletRequest.getParameterValues(key):表单项有多个值,用此方法
客户端向服务器端提交信息
1)使用表单,即<form>
2)在URL后追加 ?name=value&name=value
获取HTTP请求的头部信息:
1)HttpServletRequest.getHeaderNames()
2)HttpServletRequest.getHeader(...)
如referer可以取到上一个网页的URL
localhost:8888/servletjd0710/ch2/RequestServlet?name=briup&age=10
request.getContextPath():/servletjd0710
request.getQueryString():name=briup&age=10
request.getRequestURI():/servletjd0710/ch2/RequestServlet
request.getRequestURL():http://localhost:8888/servletjd0710/ch2/
request.getServletPath():/ch2/RequestServlet
二、servlet的生命周期
1)由容器装载并实例化,产生一个实例
2)由容器调用init()方法,不需要考虑多线程
     只被调用一次
init(ServletConfig config)先被调用

init()后被调用
设置初始化参数:
  1,  全局的
 <context-param>
<param-name>age</param-name>
<param-value>20</param-value>
</context-param>
通过ServeltConfig.getServletContext().getInitParameter(...)取
   2,局部的
<servlet>
<servlet-name>helloservlet</servlet-name>
<servlet-class>com.briup.ch3.HelloServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>zhangsan</param-value>
</init-param>
</servlet>
通过ServletConfig.getInitParameter(...)取
3)根据用户的每一次请求,调用一次服务方法doGet/doPost等,需要考虑多线程
service(ServletRequest,ServletResponse)
service(HttpServletRequest,HttpServletResponse)
doGet()/doPost()
多线程处理
1)implements SingleThreadModel
每个请求创建一个Servlet实例为其服务,性能低,不建议使用
2)建议在servlet类用不要使用实例变量,
     如果用,使用synchornized进行同步
4)由容器调用destroy()方法,不需要考虑多线程
只被调用一次
clean shutdown(无损关机)
-------------------------------------------------------------------------------------------
容器实例化servlet的顺序:
1.当load-on-startup为负数的时候,servlet会在第一次访问的时候被实例化,默认情况下load-on-startup为-1;
2.当load-on-startup为正数的时候,在tomcat装载web应用的时候servlet就会被实例化;
3.load-on-startup为0的时候,最晚被实例化;
4.load-on-startup>0的时候,值越小就越早被实例化;
-------------------------------------------------------------------------------------------
GenericServlet:重载有参的init()方法,调用无参的init()方法.无参的init()方法用于初始化程序.
-------------------------------------------------------------------------------------------
request范围:

分享到:
评论

相关推荐

    JavaServlets帮助文档

    JavaServlets帮助文档JavaServlets帮助文档JavaServlets帮助文档JavaServlets帮助文档JavaServlets帮助文档JavaServlets帮助文档JavaServlets帮助文档

    Murach's Java Servlets and JSP 2nd Edition 源代码

    《Murach's Java Servlets and JSP 2nd Edition》是一本深受欢迎的Java Web开发教程,涵盖了使用Servlets和JSP进行动态网页编程的核心知识。源代码是学习过程中的重要辅助材料,它能帮助读者深入理解书中的实例,...

    Java Servlets和java swing

    Java Servlets和Java Swing是Java开发中的两个重要技术领域,分别用于Web服务器端和桌面应用程序的开发。 **Java Servlets** Java Servlets是Java平台上用于扩展Web服务器功能的Java类。它们是Java EE(企业版)的...

    Java.Servlets.编程指南.zip

    Java Servlets是Java EE平台中的一个核心组件,用于构建动态Web应用程序。Servlets是一个服务器端的Java类,它扩展了Web服务器的功能,使得服务器能够处理HTTP请求并返回响应。本编程指南将深入探讨Java Servlets的...

    Java Servlets编程指南

    Java Servlets编程指南

    Murach's Java Servlets and JSP, 2nd Edition.文字版--part2

    Murach's Java Servlets and JSP, 2nd Edition.高清文字版,并加入了书签--part2

    Murach's Java Servlets and JSP, 2nd Edition.文字版--part1

    Murach's Java Servlets and JSP, 2nd Edition.高清文字版,并加入了书签--part1

    Java.Servlets编程指南

    第1章 servlet概述第2章 Java Web服务器第3章 第一个servlet 第4章 servlet链第5章 servlet-side Includes 第6章 会话管理第7章 安全性 第8章 HTML表单第9章 在servlet中使用JDBC 第10章 applet与servlet的通信第11...

    Java Servlets 参考大全源代码

    这个压缩包文件集合包含了一系列与Java Servlets相关的源代码示例,覆盖了多个章节,从基础到进阶,帮助开发者深入理解并实践Servlets编程。 首先,我们来看看每个章节的主题可能涉及的知识点: 1. **chapter05....

    Static Analysis for Java Servlets and JSP.pdf

    ### 静态分析在Java Servlets与JSP中的应用 #### 概述 本文档主要探讨了如何通过静态分析技术来确保基于Java Servlets和JSP开发的Web应用程序的行为符合预期。具体而言,该研究关注于两个核心问题:一是确保所有...

    Murach-s-Java-Servlets-and-JSP, 3rd.pdf

    Murach's Java Servlets and JSP, 3rd Very good introduction on servlet and jsp.

    Java Servlets编程指南,相当不错的sservlets入门教程.rar

    本教程的压缩包文件"JavaServlets_shishuo.chm"很可能包含了详细的章节,讲解了上述知识点。通过阅读,你将能够理解和实践Servlets编程,为Java Web开发打下坚实基础。建议结合实际项目进行学习,以便更好地理解和...

    Murach's Java Servlets And JSP 2nd Edition

    ### Murach's Java Servlets and JSP 第二版 关键知识点概述 #### 一、绪论:Java Web 开发入门 - **Java Web 开发概述**:本书首先介绍了使用 Java 进行 Web 开发的基本概念,包括 Java 在 Web 开发中的角色以及...

    Java开发指南-Servlets和JSP篇下载

    Java开发指南-Servlets和JSP篇是一份深入讲解Java Web开发的重要资料,主要涵盖了Servlets和JSP(JavaServer Pages)这两个核心技术。在Web应用开发领域,Servlets和JSP是构建动态网站和Web服务的基石,尤其对于后端...

    Core Servlets and JavaServer Pages

    《Core Servlets and JavaServer Pages》是一本专为IT专业人士准备的经典教材,它深入浅出地介绍了Servlet和JavaServer Pages(JSP)技术,这两项技术是构建动态、交互式Web应用的基础。这本书的核心在于将理论知识...

Global site tag (gtag.js) - Google Analytics