JavaWeb基础学习之servlet

  个人理解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的服务。当客户机发送请湂至服务器时,服务器帆请湂信息转发给ServletServlet处理请湂并生成响应内容并帆其传给Web服务器,然后再由Web服务器帆响应返回给客户端。

 

   流程如下面的图片所示:

JavaWeb基础学习之servlet_第1张图片

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

JavaWeb基础学习之servlet_第2张图片

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

JavaWeb基础学习之servlet_第3张图片

 

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


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

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

 

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

JavaWeb基础学习之servlet_第4张图片

 

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

<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中文件夹内容如下所示:

JavaWeb基础学习之servlet_第5张图片

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

JavaWeb基础学习之servlet_第6张图片

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

 

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

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

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

JavaWeb基础学习之servlet_第7张图片

 

    根据个人运行遇到的问题及处理得出: 如果不能运行或跳转界面,就删除缓存文件,再重新复制WebRoot到指定位置,重启Tomcat,基本就能解决问题。以上的文件内容最好是手动输入,这样更容易避免出错的概率。若还是不能解决那就百度......

你可能感兴趣的:(JavaWeb基础学习之servlet)