利用servlet转发技术实现统计form表单中字母次数
2016-09-12 15:21
323 查看
需求是利用servlet转发技术,实现对html网页中用户输入的内容进行统计,统计每个字母出现的次数,忽略大小写。其中统计功能在一个servlet中,转发功能在另一个servlet中。
1.新建dynamic web project,命名为CounterCharacter
2.在webContent目录中新建index.html文件,设置form表单
[html] view
plain copy
<!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,主要负责统计用户输入的内容中每个字母出现的次数
[java] view
plain copy
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,主要负责统计结果的输出
[html] view
plain copy
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,功能实现
1.新建dynamic web project,命名为CounterCharacter
2.在webContent目录中新建index.html文件,设置form表单
[html] view
plain copy
<!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,主要负责统计用户输入的内容中每个字母出现的次数
[java] view
plain copy
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,主要负责统计结果的输出
[html] view
plain copy
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,功能实现
相关文章推荐
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- jsp传参 servlet接收中文乱码问题的解决方法
- jsp和servlet中实现页面跳转的方式实例总结
- java servlet结合mysql搭建java web开发环境
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- Servlet 过滤器详细介绍
- JSP+Servlet+JavaBean实现登录网页实例详解
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- JSP使用Servlet作为控制器实现MVC模式实例详解
- JSP使用Servlet过滤器进行身份验证的方法
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- js调用后台servlet方法实例