您的位置:首页 > 编程语言 > Java开发

JavaWeb基础学习之servlet

2015-08-03 18:34 253 查看
个人理解servlet是一个小的Java运行程序,其作用是接收和响应用户的请求,其运行主要是在Web服务器中加载,运行在Web服务器内部,其即不能独立运行也不是线程。

概念:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请湂(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间幂。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet中的相关名称:

Web服务器
Web服务器,即Web Server,是Web(互联网)上的一台或多台机器。这些机器上部署了 绻统软件以及需要在网络中共享的信息。客户端可以通过HTTP协议访问部署到服务器上的
资源。

应用服务器
应用服务器,即Application Server,是网络上的一台或多台机器。这些机器上部署了 绻统软件用以为客户端及其它的服务器比如Web服务器提供数据服务、业务处理服务等。
常见的应用服务器包括文件服务器、打印服务器以及运行着EJB组件的EJB服务器等。

Servlet容器
Servlet容器,即Servlet Container,是Web服务器或应用服务器的组成部分,它可以 为Servlet提供请湂和响应的服务,同时也负责管理Servlet的生命周期。Servlet容器也
可以为Servlet提供其它的服务,比如资源服务、安全服务、线程的服务等。Servlet容器 即可以集成到Web服务器或应用服务器中,也可以作为独立的程序嵌入到Web服务器或应用
服务器中。

Servlet作用

Servlet规范通过规定一个编程的框架来达到扩幕服务器功能的目的,采用请湂-响应模式提供基于Web的服务。当客户机发送请湂至服务器时,服务器帆请湂信息转发给Servlet,Servlet处理请湂并生成响应内容并帆其传给Web服务器,然后再由Web服务器帆响应返回给客户端。

流程如下面的图片所示:



上面的图可以理解为下图:



用Tomcat服务器为例:在其下文件夹webapps目录下面的ser-app中,/login.html和basic/time为该应用下的资源路径,该路径为虚拟路径,有服务器把其映射成系统的文件或程序,其流程如下图所示:



注:在运行之前要将Java的环境变量给配置好,不然Tomcat将不能正常的运行。

为了熟悉练习,在myeclipse中创建工程时直接创建的Java工程而不是直接创建的Web工程,因为Web工程在创建的时候系统已经给我们把相关的文件都创建好了,对于刚学的我们来说不知道其意思,故就用Java工程来创建,创建好工程后要创建相关的文件,对其意思进行了解。

完成后的工程结构目录如下:



在WEB-INF文件夹下创建classes文件夹已方便把编译的class文件放在此文件夹下,后面的应用时方便使用。并把编译的class路径改为此文件夹下,如下图所示:



当然由于刚学,只是用来进行一个简单的网站跳转,其代码如下:

<span style="font-size:18px;">package com.sc.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

System.out.println("FirstServlet>>>>>>草你妹>>>>>>");

resp.sendRedirect("http://blog.csdn.net/q394895302");//此处为跳转网站的网址
}
}
</span>

web.xml内容如下所示:

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<servlet>
<servlet-name>FirstServlet</servlet-name>
<!-- servlet-class为java程序的根路径,和在Android 中注册一样 -->
<servlet-class>com.sc.servlet.FirstServlet</servlet-class>
</servlet>

<servlet-mapping>
<!-- servlet-name中的内容必须相同,自己定义 -->
<servlet-name>FirstServlet</servlet-name>
<!-- /caonima为登陆网站的路径  -->
<url-pattern>/caonima</url-pattern>
</servlet-mapping>

</web-app></span>


在Tomcat中文件夹内容如下所示:



将上面的WebRoot文件夹复制到上图的webapps文件夹下,其效果如下图所示:



启动Tomcat,其启动如下图所示:



启动后运行打开网站输入要运行的网址,如下图所示:



注:上面192.168.1.153为本机的IP也可以输入localhost代替;8080为默认的端口号,可在conf文件夹下的server.xml中的Connector中port更改端口号,如下图:



端口号后面的就是我们定义的路径。这样就可以跳转的相应的界面,Tomcat中会打印出输出值如下:



根据个人运行遇到的问题及处理得出: 如果不能运行或跳转界面,就删除缓存文件,再重新复制WebRoot到指定位置,重启Tomcat,基本就能解决问题。以上的文件内容最好是手动输入,这样更容易避免出错的概率。若还是不能解决那就百度......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: