zoukankan      html  css  js  c++  java
  • Servlet调用流程

    首先说说我们的Tomcat7.0的目录结构

           包括目录:
           bin

           conf

           lib

           logs

           temp

           webapps

           work

     

           bin文件:

                       存放各种平台下启动和关闭Tomcat的脚本文件。

                       startup.bat是windows下启动tomcat的文件。

                       shutdown.bat是关闭tomcat的文件。

          conf目录:

                       Tomcat的各种配置文件,tomcat启动时需要读取的配置文件:server.xml

          lib目录:

                     存放Tomcat所需的各种jar文件。

          logs目录:
                     存放Tomcat的日志文件。

          temp目录:

                      临时文件目录,用于存放Tomcat运行时的临时文件。

          webapps目录:

                      web应用的发布目录,把java编写的web应用或打包成的war格式的web应用文件放入该目录下,就能通过Tomcat服务器访问了。

           work目录:

                    Tomcat把JSP文件编译生成Servlet文件存放在这个目录下。

     

    数据传送流程:

          

      

    java servlet

            我们要在webapps目录下建立一个我们javaweb项目的目录结构test_servlet:

            WEB-INF/classes web.xml lib 

            lib文件:存放java包,数据库驱动程序等等。

            classes文件:存放已编译好的类。

            Web.Xml:配置一些信息,例如Servlet的配置,名字,路径等,告诉我们的Tomcat我们使用的哪个Servlet。

            我们依次来写:

            servlet代码:

          

    //引入java的包。
    import javax.servlet.http.*;
    import java.io.*;
    import javax.servlet.*;
    //第一个Servlet程序。
    public class LoginServlet extends HttpServlet
    {
    	//指定调用哪个servlet。
    	//get提交和post提交两种方式。
    	public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    	{
    		//取得客户端的数据。
    		String username = request.getParameter("username");
    		String password = request.getParameter("password");
    		
    		System.out.println("username" + username);
    		System.out.println("password" + password);
    		//向浏览器上写数据。可以有流。字符流。
    		//setContext设置响应的内容类型。设置为html类型或者中文。
    		response.setContentType("text/html;charset=GB18030");
    		//response.getWriter().println("Login Success!!!");
    		//response.getWriter().println("登录成功!!!");
    		response.getWriter().println("<html>");
    		
    		response.getWriter().println("<head>");
    		response.getWriter().println("<title>登录信息</title>");
    		
    		response.getWriter().println("</head>");
    		response.getWriter().println("<body>");
    		response.getWriter().println("欢迎【" + username + "】登录成功!!!");
    		
    		response.getWriter().println("</body>");
    		response.getWriter().println("</html>");
    		
    	}
    	//采用post的提交方式。
    	public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    	{
    		doGet(request,response);
    	}
    }


             虽然我们引入了jar包,但是程序是否能从找到tomcat的servlet  jar包,我们需要配置一下用户的环境变量,把lib\servlet-api.jar包配置到classpath变量。当然tomcat也是java编码的,所以我们也配置一下JAVA_HOME变量,可以在tomcat的批处理命令startup.bat中进行配置,set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43。

             然后把这个java文件编译成.class 文件,放到classes文件夹中。

             html代码:

           

    <html>
    	<head>
    		<title>登录</title>
    	</head>
    	<body>
    	    <!--这是绝对路径-->
    		<!--相对路径写法:action="LoginServlet"-->
    		<form action="http://127.0.0.1:8080/test_servlet/LoginServlet">
    			用户:<input type="text" name="username"><br>
    			密码:<input type="password" name="password"><br>
    			<input type="submit" value="登录">
    		</form>
    	</body>
    </html>

             Web.Xml :

             

    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <web-app 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_3_0.xsd"
      version="3.0"
      metadata-complete="true">
    		
        <servlet>
    		<servlet-name>MyServlet</servlet-name>
    		<servlet-class>LoginServlet</servlet-class>
    	</servlet>
    	
    	<servlet-mapping>
    		<servlet-name>MyServlet</servlet-name>
    		<url-pattern>/LoginServlet</url-pattern>
    	</servlet-mapping>
    </web-app>


             启动Tomcat就可以执行成功。

             下面是servlet的调用过程,也可以用HTTPLook软件来跟踪:

             

            

           作为一个java的初学者来说,开始一个servlet让我很模糊,什么是servlet呢?有道上说是servlet(小服务程序),学过了发现,也是26个英文字母的组合,其实说白了就是java代码,但是因为他的用途,人们给他抽象总结了一个层次,叫做servlet,。就相当于县长首先是人,再是县长~,貌似搞得这儿复杂~不也是个干活的么~

          同样是网页,.net开发的网页和java开发的有什么区别呢?.net中有没有servlet?据说.cs文件写“servlet”就相当于servlet了。呵呵,有待更深的研究,加油!

                                        

  • 相关阅读:
    django 单表操作
    爬虫学习
    DRF源码分析
    DRF权限和频率限制
    DRF版本和认证源码分析
    request高级部分
    多任务异步爬虫及selenium模块使用
    requests基本使用
    爬虫介绍及环境
    Flask生命周期的源码流程
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3102215.html
Copyright © 2011-2022 走看看