`
persistC
  • 浏览: 73566 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
一、简述
1、Servlet,服务器端的小程序,它是相对于Applet而言的,Applet是客户端小程序。
   Servlet,是接受来自网络的请求(form表单,以及其他的请求),并对不同请求作出不同的响应
   Servlet,是基于Http协议的,是运行在web服务器中的程序。这里要提出一个容器的概念。
   servlet是运行在web容器中,在后面会详细地讲解,这个web容器可以控制Servlet对象的生命周期,控制请求由Servlet对象处理。

2、web服务器,这里的服务器不是硬件概念,而是软件,常用的web服务器有 Tomcat,Jboss等,我们所用到的Tomcat是一个开源的服务器,
   Tomcat是一个用java语言编写的web服务器,所以需要有相应的java运行环境,也就是JVM,还要配置tomcat的具体路径。

二、Tomcat的配置

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

在启动Tomcat时,是运行Tomcat的bin目录下的startup.sh(windows中使用startup.bat)
判断Tomcat是否启动成功,可以在浏览器的地址栏中使用http://localhost:8080/或http://127.0.0.1:8080/可以访问到tomcat的主页就是启动成功了。
要想停止tomcat服务器要使用shutdown.sh(windows中使用shutdown.bat),如果直接关闭启动窗口,就会造成8080端口占用错误,这时可以在使用
shutdown.sh关闭一下服务器。

startup.sh,shutdown.sh,shutdown.bat,startup.bat这些文件其实是一些脚本文件用来执行大量的命令,也就是大量java命令。

tomcat的默认监听端口是8080端口,当接受到每一个连接请求,就会为其分配一个线程。

tomcat可以识别的资源只有在webapps文件夹下,webapps也就是web应用文件夹,webapps下的文件夹这些文件夹中存放的就是web应用,
web应用是有格式规范的,每个web应用的文件夹下都要有
WEB-INF文件夹,WEB-INF文件夹下有classes,和lib文件夹,以及一个web.xml文件,一些使用到的类文件放在classes中,一些使用到
的相应的jar文件。

注意:使用完有限的资源要进行释放。
tomcat中配置了root缺省应用,也就是在不指定的情况下会默认访问这个应用。

web.xml文件的写法
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

</web-app>

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


三、Servlet基础

Servlet,可以实现动态的页面,可以针对不同的请求作出不同的响应,可以实现页面的流转,Servlet可以充当MVC模式中的Ctrl模块,他可以控制信息的流向。
web服务器会web应用在WEB-INF文件夹下的classes文件夹搜索要加载的class文件,所以我们写的class文件要放在web应用中的WEB-INF文件夹下的classes文件夹下。

设置servlet的类和访问的方式

web.xml文件的配置,一个web.xml中可以配置多个Servlet
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<servlet>
<servlet-name>servlet的名字</servlet-name>
<servlet-class>servlet类全名</servlet-class>
</servlet>
<servlet>
<servlet-name>servlet的名字1</servlet-name>
<servlet-class>servlet类全名1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet的名字(要和servlet标签中的相同)</servlet-name>
<url-pattern>指定servlet相对于应用目录的路径</url-pattern>
</servlet-mapping>
servlet-mapping>
<servlet-name>servlet的名字1</servlet-name>
<url-pattern>指定servlet相对于应用目录的路径</url-pattern>
</servlet-mapping>
</web-app>

catalina.sh run 带控制台启动tomcat服务器。


四、Servlet的调用过程

1,用户通过浏览器向web服务器发送请求
   http://serverip:port/apppath
2,服务器为用户定位资源
   静态资源:/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-mapping>
<servlet-name>servlet的名字(要和servlet标签中的相同)</servlet-name>
<url-pattern>指定servlet相对于应用目录的路径</url-pattern>
</servlet-mapping>
url-parttern的配置,这个url就是Servlet的虚拟路径,可以使用相对路径或者是绝对路径。
/xxx/xxx(绝对路径) ,xxx(相对路径),尽量使用绝对路径。
访问servlet的方法
http://serverip:port/应用文件夹名/url-pattern

http的请求
get请求,post请求。
get请求在发出请求时会把参数写在地址栏上,而post请求不会把要发送的参数显示在地址栏上。

<form method="get" action="应用名/url-pattern">
......
</form>

我们可以通过ServletRequest对象的方法来获取请求中传送的参数。
getParameter(String name)方法,可以获得form表单中指定名字的参数,多参数同名时,只取一个。
getParameterNames(),可以获得一个迭代器Enumeration,通过这个迭代器,来获得form表单中参数的名字。
getParameterValues(String name)获得指定的所有同名参数的值。
分享到:
评论

相关推荐

    Servlet1(登陆例子)

    Servlet1(登陆例子)是Java Web开发中一个基础但重要的实践示例,它演示了如何使用Servlet技术处理HTTP请求,实现用户登录功能。Servlet是一种Java类,它扩展了服务器的功能,能够接收并响应来自客户端(通常是Web...

    Servlet1-5lesson-demo.rar_One Lesson

    【Servlet1-5lesson-demo.rar_One Lesson】是一个压缩包文件,包含了Java Servlet技术的基础到进阶的教程,特别适合初学者进行学习。"Java servlet one to fifth lesson examples"描述了这个资源的内容,它提供了五...

    servlet_1

    在本文中,我们将深入探讨Servlet的概念、工作原理以及如何通过`HttpServlet.java`来实现一个基本的Servlet。 首先,理解Servlet的概念非常重要。Servlet是Java Servlet API中的一个抽象类,它是对HTTP协议的Java...

    Servlet1.md

    Servlet1.md

    java-servlet-api.doc

    当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。...

    Servlet解读

    &lt;servlet-class&gt;servlet.servlet1&lt;/servlet-class&gt; &lt;load-on-startup&gt;0 &lt;/servlet&gt; ``` 这里的`0`表示Servlet在Web应用启动时立即加载。数字越大表示加载顺序越靠后。如果是负数或未指定,则表示仅在第一次请求时...

    java零基础自学 之 Servlet 技术1-4课时

    1. **Servlet简介**:Servlet是一个Java类,它扩展了服务器的功能,使得开发者可以编写代码来处理客户端(如浏览器)发送的请求,并返回响应。Servlet遵循Java Servlet API规范,由Sun Microsystems(现在是Oracle...

    Servlet培训课件(中软国际)

    "Servlet1.ppt"可能涵盖的是Servlet的入门知识,比如如何创建Servlet,以及如何在web.xml文件中配置Servlet。这个课件可能会讲解如何编写一个简单的Servlet类,覆盖`doGet()`和`doPost()`方法,以及如何处理HTTP请求...

    servlet1.pdf

    1. **Servlet简介** - Servlet是一种服务器端的小程序,由Java编写,具有跨平台能力,主要用于扩展服务器的功能,特别是在Web服务器中生成动态内容。 - Servlet与客户端浏览器交互,接收请求并生成相应的响应,如...

    使用servlet实例

    - `init()`:Servlet初始化时调用,用于一次性设置Servlet的配置信息。 - `service()`:处理客户端请求的核心方法,会根据请求类型调用`doGet()`或`doPost()`。 - `doGet()`和`doPost()`:处理HTTP GET和POST请求的...

    Domino_Servlet示例

    Servlet 文件扩展------------URL 文件扩展名,用来告诉 Domino 它是一个 Servlet,以逗号分隔。 会话状态跟踪----------------启用/禁用指示 Servlet 管理者是否将中止空闲的会话。 空闲超时时间------

    手动编译、部署servlet

    #### 一、Servlet简介 Servlet是Java Web开发中的一个重要组成部分,它主要用于处理客户端请求并生成动态响应。Servlet技术由Servlet规范定义,Servlet容器(如Tomcat)负责执行这些规范。Servlet可以看作是服务器...

    servlet基础与servlet容器模型

    1. **Web应用**:一组相关的资源(HTML、CSS、JavaScript、图片、Servlet类等),按照特定的目录结构打包成WAR(Web Archive)文件,部署在容器中。 2. **部署描述符**(web.xml):这是Web应用的配置文件,定义了...

    过滤多个servlet

    Servlet Filter是一个实现了javax.servlet.Filter接口的类,它在Servlet被调用之前和之后执行。在web.xml配置文件中,我们可以定义一个或多个filter,并通过元素指定这些filter应该拦截哪些Servlet或URL模式。 下面...

    Java用注解的方式定义一个Servlet

    用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。  像上面的AnnotationServlet可以描述成@WebServlet(name="Annotation...

    JSP与servlet之间的传值

    上述配置表明了 `JspServlet1` 和 `JspServlet2` 分别映射到 `/JspServlet` 和 `/admin/JspServlet` 这两个 URL。这意味着用户在浏览器中输入这些 URL 时,会触发对应的 Servlet 处理程序。 #### 五、总结 本文详细...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器的功能,特别是针对HTTP协议。Servlet API定义了服务器端组件如何与Web客户端(如浏览器)进行交互,处理接收到的请求,并生成响应。...

    SpringBoot 注册自己的Servlet(三种方式)(源代码)

    SpringBoot 注册自己的Servlet(三种方式)(源代码) ...目前使用Spring的,更多是在web方面,所以Spring更多的是依赖Servlet容器,哪怕是springboot擅长做独立可执行的微服务应用程序,其内部也包含一个嵌入式Jetty。

    servlet多线程

    1. **变量的线程安全**:对于Servlet中的变量,特别是那些可能被多个线程访问的共享数据,如表单参数值,应尽可能将其转化为局部变量,因为多线程环境下的局部变量是线程隔离的。此外,可以使用`synchronized`关键字...

Global site tag (gtag.js) - Google Analytics