- 浏览: 32964 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
hyjasonlee:
birthday 为Date 能取数据出来吗?我用sqlite ...
利用dbutils框架简化jdbc开发
防止表单重复提交:
首先,在前台用js禁止。
其次:用session禁止(重点)。
许多框架的工作原理:
//产生表单 public class FormServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); String token = TokenProcessor.getInstance().generateToken(); request.getSession().setAttribute("token", token); out.print("<form action='/day07/servlet/FormSubmitServlet' method='post'>"); out.print("<input type='hidden' name='token' value='"+token+"'>"); out.print("<input type='text' name='username'>"); out.print("<input type='submit' value='提交'>"); out.print("</form>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } class TokenProcessor{ //1. 把构造方法私有 //2. 自己产生一个类的对象 //3. 定义一个方法返回上面产生的对象 private TokenProcessor(){}; public static final TokenProcessor instance = new TokenProcessor(); public static TokenProcessor getInstance(){ return instance; } public String generateToken(){ //3843849384 9849238402840243802 983434 String token = System.currentTimeMillis() + "" + new Random().nextInt(99999999); //数据指纹 数据摘要 md5 try { MessageDigest md = MessageDigest.getInstance("md5"); byte md5[] = md.digest(token.getBytes()); //128位 16【12,23,34,544543543543,】 //base64编码 SABDSSDSD BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(md5); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } }
测试servlet
public class FormSubmitServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean b = isToken(request); if(!b){ //用户带过来的令牌无效,阻止提交 System.out.println("你是重复提交!!"); return; } //用户带过来的令牌有效,处理提交 request.getSession().removeAttribute("token"); String username = request.getParameter("username"); //把用户提交的数据保存到数据库中 System.out.println("处理提交请求,把" + username + "保存到数库中!!"); } //判断用户带过来的令牌是否有效 private synchronized boolean isToken(HttpServletRequest request) { String client_token = request.getParameter("token"); if(client_token==null){ return false; } String server_token = (String) request.getSession().getAttribute("token"); if(server_token==null){ return false; } if(!client_token.equals(server_token)){ return false; } return true; } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
发表评论
-
自学JSP---el表达式注意事项
2012-11-15 20:39 5181. El表达式函数和自定义标签一样都可以封装jsp中的 ... -
自学JSP----JSTL标签库
2012-11-12 18:43 537<c:out>标签 标签用于输出 ... -
自学Servlet_9_session(购物车)
2012-11-05 00:15 615先把代码附上: public class IndexServ ... -
自学Servlet_7_request(解决get和post提交的乱码)
2012-11-06 18:30 0解决get和post提交的乱码: if(request.g ... -
自学Servlet_8_request(表单)
2012-11-03 22:48 738<form action="/day06/ ... -
自学Servlet_7_resquest(获取客户机带过来的数据)
2012-11-03 22:45 618获取客户机带过来的数据三种情况: //1. //ht ... -
自学Servlet_6_respuest(获取客户机信息、防盗链)
2012-11-03 22:41 970获取客户机信息: //得到客户机想请求的资源 ... -
自学Servlet_5_response(定时刷新、请求重定向)
2012-11-03 22:32 660控制定时刷新的两种方法: String data = &q ... -
自学Servlet_4_response(输出随机图片)
2012-11-03 22:26 682输出随机图片: private static final i ... -
自学Servlet_3_response
2012-11-02 18:32 674response解决中文乱码问题: //更改resp ... -
自学Servlet_2_servletContext(2)
2012-11-02 11:57 639读取配置文件的各种方法: 方法一: ServletCo ... -
自学Servlet_2_servletContext
2012-11-02 10:32 8111.两种获取servletContext对象的方式 Servl ... -
自学Servlet_1_获取初始化参数
2012-11-02 10:17 628获取配置的初始化参数的方式1 String value = c ...
相关推荐
在本自学项目中,你将深入理解Servlet的工作原理,以及如何利用它来构建实际的Web应用。 首先,让我们了解Servlet的基本概念。Servlet是一个Java类,它扩展了`javax.servlet.Servlet`或实现了`javax.servlet....
6. **Servlet与JSP结合**:学习如何与Servlet协同工作,利用servlet处理业务逻辑,JSP则负责显示。 7. **错误与异常处理**:理解如何在JSP中捕获和处理运行时错误,提供友好的错误提示页面。 8. **MVC模式应用**:...
Java自学之路涵盖了许多核心知识点,从基础到高级,构建了一个完整的知识体系。以下是对这些知识点的详细解析: 1. **J2SE**:Java Standard Edition是Java的基础,它包括面向对象编程的核心概念,如封装、继承和...
6. **Servlet**:JSP最终会被编译为Servlet,它是JSP的后端处理引擎,负责处理请求和响应。 7. **MVC(Model-View-Controller)**:一种常见的架构模式,在JSP开发中,模型处理业务逻辑,视图负责显示,控制器接收...
JSP还提供了许多内置对象,如`request`、`response`、`session`和`application`等,它们对应于Servlet API中的对象,用于处理HTTP请求和响应。例如,我们可以使用`request.getParameter()`方法获取表单提交的数据: ...
3. **JSP内置对象**:JSP提供了一系列内置对象,如`request`、`response`、`session`、`application`等,方便开发者处理请求、响应、会话和应用级数据。 ### 二、JSP脚本元素 1. **脚本声明**(! %>):用于定义...
5. **Servlet和JSP**:学习Servlet的使用和生命周期,了解Cookie、Session及其关系,以及Servlet的线程安全问题。同时,探讨JSP的声明、脚本片段、表达式、注释、指令和动作。 **第二阶段:Java Web综合应用** 1. ...
Java自学知识点涵盖了许多核心领域,从基础的J2SE到高级的企业级开发技术。以下是这些知识点的详细解析: 1. **J2SE**: J2SE是Java标准版,包括面向对象编程的基础,如封装、继承和多态。理解内存管理,特别是递归...
4. `session`:用于管理用户的会话信息。 5. `application`:对应于整个Web应用程序的范围。 6. `out`:用于输出数据到响应流。 7. `config`:包含Servlet的初始化参数。 8. `exception`:捕获页面中抛出的异常。 *...
- **表单验证**:实现客户端表单验证功能,提升用户体验。 - **Ajax异步通信**:掌握通过Ajax技术实现局部页面刷新的技术原理及应用。 #### 五、服务器端技术 (Servlet & JSP) ##### 1. Servlet基础 - **Tomcat...
Java Web程序设计是一门针对计算机科学与技术专业和网络工程专业本科一年级学生的专业选修课程,旨在培养学生的JSP网页制作技术和自学、系统分析与设计的能力,为他们开发Web系统打下坚实基础。预备知识包括Java程序...
**JSP自学教程8例——深入理解Web开发技术** JSP(JavaServer Pages)是Java平台上的一种动态网页技术,它允许开发者将静态HTML与动态Java代码结合在一起,以创建交互式的网页应用。本教程旨在帮助初学者快速掌握...
JavaWeb技术是构建基于Java平台的互联网应用程序的重要组成部分,它主要涵盖了Servlet、JSP(JavaServer Pages)等核心概念。本教程"javaweb第一部分基础"旨在为初学者提供一个全面的学习路径,帮助他们理解并掌握...
《JSP动态网站开发基础教程与实验指导》可以作为JSP职业培训教材和各级院校JSP授课培训教程,也适合作为JSP自学资料和参考资料。 目录: 上篇 基础篇 1 第1章 JSP概述 1 1.1 JSP简介 1 1.1.1 JSP的形成及发展 1 ...
`<jsp:action>`则用于执行特定的动作,如包含其他页面、处理表单数据等。 2. **JSP脚本元素** 包括`<% %>`中的Java脚本段、`! %>`的声明部分和`<%= %>`的表达式。脚本元素允许开发者在页面生命周期的特定阶段插入...
Servlet的基本概念,web.xml配置,Web应用程序的结构,Servlet生命周期,HttpServletRequest和HttpServletResponse的常用方法,ServletContext类,HTTP协议(GET和POST请求),Cookie和Session管理,Application作用...
在这个案例中,可能会包含登录表单的HTML设计,后台处理登录请求的Servlet或Controller,以及与数据库交互的DAO(数据访问对象)层。开发者可能使用了Beanutils库来简化对象属性的设置和获取,使得代码更加简洁。 ...
本教程详细介绍了JSP(Java Server Pages)技术,旨在为初学者提供全面的学习资源,适用于教学与个人自学。课程分为多个章节,深入浅出地讲解了JSP的核心概念和技术。 ### 第1章 JSP简介 1.1 软件编程体系 软件编程...
在这个项目中,开发者通过自学JSP,利用其动态网页生成能力,构建了一个用于管理学生信息的系统。系统运行在单机版的Tomcat服务器上,展示了JSP在Web开发中的基础应用。 JSP是Java平台上的一个重要组成部分,它允许...