`

Servlet+JSP下重复提交问题的解决

阅读更多
一、编写表单提交的JSP页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  
    <base href="<%=basePath%>">
        <!-- 设置网页不缓存 -->
	<META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
	<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> 
	<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
    <title>filterTest</title>
<script type="text/javascript">
var checkSubmitFlg = false;
function submitValidate(){
	
	if(checkSubmitFlg == true){
		return false;
	}
	checkSubmitFlg = true;
	return true;
}
//设置点击之后,浏览器不能再对点击做出事件反应
//document.onclick = function doconclick(){
//	window.event.returnValue=false;
//} 
</script>
  </head>
  <body>
    <form action="servlet/LoginServlet" method="post" >
    username:<input type="text" id="username" name="username"/><br>
    password:<input type="password" id="password" name="password"/><br>
 <!--    请输入验证码:<input type="text" name="code" id="code" /><img src=""/> -->
    <input type="hidden" name="key" value="key"/>
      <!-- 设置一个主题topic,用于记录session中是否还有该值 -->
    <input type="button" value="提交" onclick="<%session.setAttribute("topic_add","topic_add"); %>;this.form.submit()" />
    </form>
 <!--    <h1>欢迎:<span style="color=red"><%=session.getAttribute("username")%></span></h1> -->
  </body>
</html>

二、编写Servlet,LoginServlet.java
package com.test.servlet;

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

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


public class LoginServlet extends HttpServlet {

	public LoginServlet() {
		super();
	}

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String key = request.getParameter("key");

		if(isRedo(request,key)){
			request.getSession().setAttribute("key", key);
			this.getServletContext().getRequestDispatcher("/resultLogin.jsp").forward(request, response);
		}else{
//			System.out.println("resubmit..");
			response.sendRedirect("../resubmit.jsp");
		}
		
	}

	public void init() throws ServletException {
		// Put your code here
	}
	public boolean isRedo(HttpServletRequest request,String key){
		String value = (String)request.getSession().getAttribute(key);
		if(value == null){
			return true;
		}else{
			request.getSession().removeAttribute(key);
			return false;
		}
		
	}

}

三、登录成功页面resultLogin.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>My JSP 'resultLogin.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
    <body>
    <h1>登录结果页面</h1>
 	username::<%=request.getParameter("username") %><br>
 	password::<%=request.getParameter("password") %>
  </body>
</html>

四、重复提交提示页面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'resubmit.jsp' starting page</title>

  </head>
  
  <body>
  <h1>Re Submt!!!!!!!!!</h1>
  </body>
</html>

分享到:
评论

相关推荐

    servlet+jsp+mysql在线投票系统

    本项目“servlet+jsp+mysql在线投票系统”综合运用了Servlet、JSP和MySQL等核心技术,构建了一个完整的Web应用,涵盖了用户身份验证、数据存储、业务逻辑处理等多个方面,同时也涉及到了网络安全和数据库管理的重要...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    java 实现验证码(servlet+jsp)

    在Java Web开发中,我们可以使用Servlet和JSP来实现一个简单的图形验证码。以下将详细介绍如何利用这两个技术进行验证码的实现。 首先,理解验证码的基本原理:验证码是一种通过图像显示随机字符或数字的方式,用户...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    servlet+jsp+javabean+css+javascript

    这个项目显然基于MVC(Model-View-Controller)设计模式和三层架构思想,旨在创建一个用户注册系统,具备安全特性如防止表单重复提交和一次性验证码。 首先,MVC设计模式是一种软件设计模式,它将应用程序分为三个...

    JavaWeb+Servlet+JSP+sqlserver实现登录注册

    使用源生态Servlet+JSP+sqlserver实现登录、注册、文章增删改查功能,并解决增加文章重复提交问题,通过此小程序可以学习到普通动态网站前后台之间的关系,适合初学者学习。数据库也可以是Mysql,需要更换驱动程序。

    jsp+servlet+tomcat+mysql项目

    6. 用户与JSP交互,提交表单或点击链接,触发新的请求,重复以上流程。 【学习重点】 - JSP语法:理解指令、脚本元素和动作标签的使用。 - Servlet生命周期:了解Servlet的加载、初始化、服务和销毁过程。 - JDBC...

    servlet+jsp上传下载

    在Java Web开发中,Servlet和JSP是两个关键的组件,它们经常被用来构建动态网站应用,包括文件的上传和下载功能。在这个“servlet+jsp上传下载”项目中,我们将探讨如何使用这两种技术实现这一功能,这对于初学者...

    健身俱乐部Web网站-JSP+Servlet+Hibernate+jQuery+Ajax

    7.由于是第一次做网站,且时间比较紧(这段时间期末考试),所以对于一些细节问题,如防止表单重复提交、某些页面的访问权限控制(基本的访问权限控制已经实现,但是有些比如像俱乐部服务员可以不登陆直接通过URL...

    登录和注册(jsp+servlet+JavaBean)

    【标题】"登录和注册(jsp+servlet+JavaBean)"涉及的是Web开发中的基础认证机制实现,主要使用了JavaServer Pages (JSP)、Servlet和JavaBeans技术。这些技术是构建动态网页应用的重要组成部分,特别是在传统的MVC...

    亲自打的servlet+jsp+2008sqlserver的投票系统

    然后,我们将项目导入到Web服务器(如Tomcat),这个"web项目"包含了Servlet和JSP文件,它们是Java Web应用的主要组成部分。最后,我们通过访问"show.jsp"来启动和展示投票界面及结果。 **Servlet**:Servlet是Java...

    jsp+servlet+javabean 增删改查分页

    而当需要改变URL或者避免重复提交时,会选择使用Response.sendRedirect()进行重定向。 **请求参数与会话管理**:在处理用户请求时,Servlet可以从请求对象中获取参数,例如通过request.getParameter()。对于需要跨...

    MVC 下servlet+jsp做的shoppingcart

    在这个"Mvc下servlet+jsp做的shoppingcart"项目中,我们主要关注以下几个核心知识点: 1. **MVC模式**:MVC是一种软件设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。...

    简易JSP+servlet投票系统

    【简易JSP + Servlet 投票系统】是一个基于Web的应用程序,主要利用Java服务器页面(JSP)和Servlet技术来构建。在这个系统中,用户可以进行在线投票,选择不同的选项,而系统则负责记录和展示投票结果。接下来,...

    java web项目 servlet+jsp实现的网上在线报名系统

    【Java Web项目:Servlet + JSP 实现的网上在线报名系统】 在信息技术高速发展的今天,Web应用程序已经成为企业和个人日常工作中不可或缺的一部分。Java Web项目利用Servlet和JSP技术构建的在线报名系统,为用户...

    简单的servlet+jsp图片上传并显示图片解压就可用

    在本文中,我们将深入探讨如何使用Servlet和JSP实现一个简单的图片上传并显示的功能。Servlet是一种Java编程技术,常用于扩展服务器的功能,处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页技术,可以方便...

    jsp+servlet+javabean例子

    在IT行业中,`JSP(JavaServer Pages)`、`Servlet`和`JavaBean`是构建Web应用程序的常用技术,特别是在传统的MVC(Model-View-Controller)设计模式下。这个"jsp+servlet+javabean留言管理小例子加分页功能"是一个...

    简易投票系统jsp+servlet+javabean

    总的来说,“简易投票系统jsp+servlet+javabean”项目是一个典型的Java Web开发实例,涵盖了前端交互、后端处理以及数据管理的核心技术,对于学习和理解Java Web开发具有很好的实践价值。通过这个项目,开发者可以...

Global site tag (gtag.js) - Google Analytics