rss· 投稿· 设为首页· 加入收藏· 繁體版

eclipse下Servlet技术开发简化流程

         经过这么长时间的Java Web编程,现在越来越觉得基本的开发技术非常重要,由于之前首先接触的不是纯Servlet的开发,所以后来学Struts1等就感觉力不从心,接触以Servlet为基础的原理性技术就感觉很不爽,老是似懂非懂云里雾里的。所以就决心要回去把Servelt好好整整,希望能有所进展吧

         Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的Web服务器端编程技术,同时它是一种独立于平台和协议的服务器端Java应用程序,可以生成动态的Web页面。某种程度上讲,Servlet与Web服务器的关心类似于Applet与Web浏览器的关系。Servlet是CGI Script的一种替代技术,由于Servlet在性能,可移植性,代码重用性等方面比CGI有显著的优势,因此在未来开发中Servlet极有可能取代CGI技术。其主要要点包括:Servlet生命周期,Servlet被装入和实例化,初始化,如何处理请求,多线程和映射,以及中止等,理论体系不再赘述。

        创建一个HTTP Servlet,通常涉及到以下4个步骤:

        1.扩展HttpServlet抽象类。当然之前需要导入包servlet.zip。

        2.重载适当的方法。如重写doGet()和doPost()等。

        3.如果有Http请求信息的话,获取该信息。用HttpServletRequest对象来检索HTML表单所提交的数据或URL上查询字符串。请求对象含有特定的方法以检索客户机提供的信心,有3个可用的方法分别是:getParameterNames(),getParameter(),getParameterValues()

        4.生成Http相应。HttpServletResponse对象生成响应并将它返回到付出请求的客户机上。该对对象允许设置请求标题和响应主体。响应对象还含有getWriter()方法以以返回一个PrintWriter对象。使用PrintWriter的print()和println()方法以编写Servlet响应来返回给客户机。或者,直接使用out对象输出有关HTML文档内容。

       个人认为学习任何一种技术或者一种框架,只要我们能够实现JSP->Actions->JSP这样一个流程就可以算是有了一个简单的开发骨架,以后只是一些扩充性的工作了。 下面是一个具体的小项目:

1.组建包的层次结构如下:

        
处理流程为:在test.jsp中用Post或者Get方式跳转到actions中的Manager处理类,经过处理跳出到show.jsp
2.代码部分如下:

test.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%String path = request.getContextPath();%><!-- 这是路径的很好处理方法-->
<html>
  <head><title>eclipse下Servlet开发流程_进入Servlet</title></head>
  <body>
    <form action="<%=path %>/actions/Manger" method="post">
                  用户名:<input type="text" name="username"><br>
       <input type="submit" value="提交">
    </form>
    <a href="<%=path %>/actions/Manger?username=Tom">get提交</a>
  </body>
</html>

Manager.java:

package actions;

import java.io.IOException;
import java.io.PrintWriter;

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

public class Manger extends HttpServlet {
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
 }
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {//处理get提交

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  System.out.println("1best:"+(String)request.getParameter("username"));
  String path = request.getContextPath();
  response.sendRedirect(path+"/jsp/show.jsp");//重定向形式跳出
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {{//处理post提交

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  System.out.println("2best:"+(String)request.getParameter("username"));
  request.getRequestDispatcher("/jsp/show.jsp").forward(request, response);//跳出
  //String path ="/jsp/show.jsp";//这是等价的形式
  //RequestDispatcher rd = request.getRequestDispatcher(path);
  //rd.forward(request, response);
 }
 public void init() throws ServletException {
 }
}

show.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head>
    <title>eclipse下Servlet开发流程_跳出Servlet</title>
  </head>
  <body>
    You hava succeed!
  </body>
</html>

核心部署文件web.xml配置全文如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>
    xxyy</display-name>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
 
    <servlet>
      <servlet-name>Manger</servlet-name>
      <servlet-class>actions.Manger</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>Manger</servlet-name>
      <url-pattern>/actions/Manger</url-pattern>
    </servlet-mapping>
</web-app>

顶一下
(0)
踩一下
(0)