利用servlet转发技术实现统计form表单中字母次数

需求是利用servlet转发技术,实现对html网页中用户输入的内容进行统计,统计每个字母出现的次数,忽略大小写。其中统计功能在一个servlet中,转发功能在另一个servlet中。

1.新建dynamic web project,命名为CounterCharacter

2.在webContent目录中新建index.html文件,设置form表单

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/CountCharacter/LetterCountServlet" method="post">
请输入文章<textarea rows="5" cols="50" name="content"></textarea>
<input type="submit" value="提交"/>
</form>
</body>
</html>

3.在JavaResource/src目录下新建一个包,命名为servletDemo,在该包中新建一个servlet,命名为LetterCountServlet,主要负责统计用户输入的内容中每个字母出现的次数

package servletDemo;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LetterCountServlet
 * 统计用户输入内容中每个字母出现次数
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/LetterCountServlet" })
public class LetterCountServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public LetterCountServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Servlet works");

		//获得form表单提交的内容
		String content = request.getParameter("content");

		//忽略大小写,把用户输入全部转换成大写
		content = content.toUpperCase();

		int[] times = new int[26];

		for(int i = 0; i < content.length();i++)
		{
			char c = content.charAt(i);
			//判断C是不是字母
			if(Character.isLetter(c))
				times[c-'A']++;
		}

		//交给下一个servlet显示结果
		ServletContext context = getServletContext();
		//添加count属性
		context.setAttribute("count", times);

		//跳转至下一个servlet
		RequestDispatcher dispatcher = context.getRequestDispatcher("/ResulstServlet");

		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request,response);
	}

}

4.在servletDemo包中新建一个servlet,命名为ResultServlet,主要负责统计结果的输出

package servletDemo;

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

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ResulstServlet
 * 显示统计结果
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/ResulstServlet" })
public class ResulstServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public ResulstServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		ServletContext context = getServletContext();
		int[] times = (int[]) context.getAttribute("count");

		//输出结果
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();

		for(int i = 0; i < times.length;i++)
		{
			char c = (char) ('A'+ i);
			int frequency = times[i];

			out.println("字母:"+c+",出现次数"+frequency+"次!<br/>");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request,response);
	}

}

5.OK,功能实现

时间: 2024-09-09 21:25:36

利用servlet转发技术实现统计form表单中字母次数的相关文章

Form表单中点击按钮增加一行,并在后端用PHP处理

问题描述 Form表单中点击按钮增加一行,并在后端用PHP处理 一个简单的form表单,想要实现点击按钮之后就添加一行.(类似于部分网站的添加地址的功能) 然后submit提交表单之后在后端用PHP如何处理. 求大神写一段简单的代码! 解决方案 <?php $addr=$_POST["addr"]; if(isset($addr)){ $len=count($addr); for($x=0;$x<$len;$x++) { echo $addr[$x]; echo "

在jsp页面中如果form表单中一些不能为空的框为空了,就不能提交表单

问题描述 在jsp页面中如果form表单中一些不能为空的框为空了,就不能提交表单 在jsp页面中如果form表单中一些不能为空的框为空了,就不能提交表单 比如注册的时候如果用户名或是密码为空,则不能提交表单 解决方案 这当然是 放 js里验证了... 解决方案二: 可以看看validate,比如,validate="{required:true}"就是指非空 解决方案三: 通过控制写js方法form的onsubmit来做验证,或者使用jquery的表单控件 解决方案四: 在javasc

extjs-关于Extjs中使用loadRecord加载选择行至form表单中

问题描述 关于Extjs中使用loadRecord加载选择行至form表单中 handler:function(btn){ var win = new Ext.create(""Ext.window.Window"" { title: ""用户详细信息"" modal:true width: 600 height: 400 items: { xtype: ""form"" margin:

php-点击按钮后,怎么将form表单中的数据提交到弹窗中显示?

问题描述 点击按钮后,怎么将form表单中的数据提交到弹窗中显示? 点击按钮后,怎么将form表单中的数据提交到弹窗中显示?本人学习的是php语言 解决方案 http://blog.csdn.net/wangzi11322/article/details/45287967 解决方案二: 指定表单的target就行了,可以在指定窗口打开或者新窗口打开,不设置默认为当前窗口打开 <form target="窗口名称或者_blank" 解决方案三: 先用serializeArray序列

jQuery中设置form表单中action值的实现方法_jquery

html代码: <form id="myFormId" name="myForm" action="" method="post"> <input type="hidden" id="inParam" name="inParam" /> <input type="hidden" id="tstype"

PHP用正则匹配form表单中所有元素的类型和属性值实例代码

前言 最近工作中遇到一个需求,需要在正则匹配页面中,所有可能存在的 form 表单的元素,可能有 input,action,select,textarea等等所有可能的元素,本文给出一个代码示例.感兴趣的朋友们可以参考学习. 实例代码如下 假设页面 1.html 的网页源代码是: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>一个含有 form 表单

JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)

这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以.具体的技术,我后面还会继续写博客的.本人也还在学习中. 表单验证1-简单验证 进行简单的验证,用户名必须为abcd,密码长度必须大于等于6 然后根据用户输入的数据,在后面给出提示. 代码演示: <html> <head> <title>DHTML技术演示---表单验证</title> <meta http-equiv

为什么在使用了interceptor之后action中就无法获得form表单中的数据了?求解~~!

问题描述 1.actionpackage com.michael.logindemo.action;import java.text.SimpleDateFormat;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.michael.logindemo.service.LoginService;import com.opensymphony.

form表单中的Input使用disabled不能提交的解决方法

之前写了个测试 程序,其中添加和修改是写在一起的,当需要使用修改时,form表单里面的用了一个输入框,并没有设置disabled属性,后来需要和别人写的前台连接起来时候,由于id是不能修改的,对方设置了个   复制代码 代码如下: 任务编号:<input type="text" name="taskId" disabled="disabled"> 看发出的sql语句怎么都是insert,纠结了一段时间,就发现这个disabled属性有