jsp 实验13 servlet

一、实验目的

掌握怎样在JSP中使用javabean

二、实验项目内容(实验题目)

编写代码,掌握servlet的用法。【参考课本 上机实验3 】

三、源代码以及执行结果截图:

源代码:

inputIntegers.jsp:

<%@ page contentType="text/html" %>

<%@ page pageEncoding = "utf-8" %>

<style>

   #tom{

      font-family:宋体;font-size:26;color:blue

   }

</style>

<HTML><body bgcolor=#ffccff>

<p id=tom>

<form action="handleForward" id =tom  method=post>

<br>输入整数,用逗号或非数字字符分隔:<br>

<textArea name="number" id =tom rows=3 cols=32 ></textArea><br>

<input type=submit name = "submit" id =tom value="提交(personOne的分析)"/><br>

<input type=submit name = "submit" id=tom  value="提交(personTwo的分析)"/>

</form>

</p></body></HTML>

web.xml:

<?xml version="1.0" encoding="utf-8"?>

<web-app>

   <servlet>

       <servlet-name>handleForward</servlet-name>

       <servlet-class>moon.sun.HandleForward_Servlet</servlet-class>

   </servlet>

   <servlet-mapping>

        <servlet-name>handleForward</servlet-name>

        <url-pattern>/handleForward</url-pattern>

   </servlet-mapping>

    <servlet>

       <servlet-name>personOne</servlet-name>

       <servlet-class>moon.sun.PersonOne_Servlet</servlet-class>

   </servlet>

   <servlet-mapping>

        <servlet-name>personOne</servlet-name>

        <url-pattern>/personOne</url-pattern>

   </servlet-mapping>

    <servlet>

       <servlet-name>personTwo</servlet-name>

       <servlet-class>moon.sun.PersonTwo_Servlet</servlet-class>

   </servlet>

   <servlet-mapping>

        <servlet-name>personTwo</servlet-name>

        <url-pattern>/personTwo</url-pattern>

   </servlet-mapping>

</web-app>

HandleForward_Servlet.Java

package moon.sun;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HandleForward_Servlet extends HttpServlet{

   public void init(ServletConfig config) throws ServletException{

      super.init(config);

   }

   public void  service(HttpServletRequest request,HttpServletResponse response)

                       throws ServletException,IOException{

      RequestDispatcher dispatcher = null;

      request.setCharacterEncoding("utf-8");

      response.setContentType("text/html;charset=utf-8");

      String mess = request.getParameter("submit");

      String integers = request.getParameter("number");

      if(integers == null ||integers.length()==0) {

          response.sendRedirect("inputIntegers.jsp");

          return;

      }

      if(mess.contains("personOne")) {

          dispatcher = request.getRequestDispatcher("personOne");

          dispatcher.forward(request,response);

      }

      else if(mess.contains("personTwo")){

          dispatcher = request.getRequestDispatcher("personTwo");

          dispatcher.forward(request,response);

      }

   }

}

PersonOne_Servlet

package moon.sun;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.regex.Pattern;

import java.util.regex.Matcher;

public class PersonOne_Servlet extends HttpServlet{

   public void init(ServletConfig config) throws ServletException{

      super.init(config);

   }

   public void  service(HttpServletRequest request,HttpServletResponse response)

                       throws ServletException,IOException{

      request.setCharacterEncoding("utf-8");

      response.setContentType("text/html;charset=utf-8");

      PrintWriter out=response.getWriter();

      String integers = request.getParameter("number");

      String backMess = analysisIntegers(integers);

      out.print("<html><body><h1>"+backMess+"</body></html>");

   }

   public String analysisIntegers(String input){ 

      Pattern pattern;         

      Matcher matcher;         

      String regex="-?[0-9][0-9]*" ;

      pattern = Pattern.compile(regex); 

      matcher = pattern.matcher(input); 

      StringBuffer evenNumbers = new StringBuffer("<br>偶数:");

      StringBuffer oddNumbers  = new StringBuffer("<br>奇数:");

      while(matcher.find()) {

         String str = matcher.group();

         if(Integer.parseInt(str)%2==0){

              evenNumbers.append(str+",");

         }

         else {

              oddNumbers.append(str+",");

         }

      }

      StringBuffer buffer = evenNumbers.append(oddNumbers);

      return new String(buffer);

   }

}

PersonTwo_Servlet

package moon.sun;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.regex.Pattern;

import java.util.regex.Matcher;

public class PersonTwo_Servlet extends HttpServlet{

   public void init(ServletConfig config) throws ServletException{

      super.init(config);

   }

   public void  service(HttpServletRequest request,HttpServletResponse response)

                       throws ServletException,IOException{

      request.setCharacterEncoding("utf-8");

      response.setContentType("text/html;charset=utf-8");

      PrintWriter out=response.getWriter();

      String integers = request.getParameter("number");

      String backMess = analysisIntegers(integers);

      out.print("<html><body><h1>"+backMess+"</body></html>");

   }

   public String analysisIntegers(String input){ 

      Pattern pattern;        

      Matcher matcher;        

      String regex="-?[0-9][0-9]*" ;

      pattern = Pattern.compile(regex); 

      matcher = pattern.matcher(input);

      StringBuffer numbersZero = new StringBuffer("3的倍数:<br>");

      StringBuffer numbersOne = new StringBuffer("<br>除以31:<br>");

      StringBuffer numbersTwo = new StringBuffer("<br>除以32:<br>");

      while(matcher.find()) {

         String str = matcher.group();

         if(Integer.parseInt(str)%3==0){

              numbersZero.append(str+",");

         }

         else if(Integer.parseInt(str)%3==1){

              numbersOne.append(str+",");

         }

          else if(Integer.parseInt(str)%3==2){

              numbersTwo.append(str+",");

         }

      }

      StringBuffer buffer = numbersZero.append(numbersOne.append(numbersTwo));

      return new String(buffer);

   }

}

运行结果图:

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值