基于JSP+Serlvet+JDBC的开发(4)-- 继续TypeSerlvet的save功能

在type-index.jsp中展示了所有类型,同时也可以添加类型,如下JSP代码:

 1 <html>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 4 <%@ include file="top.jsp"%>
 5 <title>商品展示平台</title>
 6 </head>
 7 <body>
 8     <div>
 9         <div><a href="${root}/send?url=type-save.jsp">添加商品类型</a></div>
10         <c:forEach items="${entities}" var="obj">
11             <div>
12                 <a href="${root}/goods?action=tid&tid=${obj.id}">${obj.name}</a>
13             </div>
14         </c:forEach>
15     </div>
16 </body>
17 </html>

可以看到添加商品类型的连接是${root}/send?url=type-save.jsp。其中${root}是在top.jsp设置的项目的ContextPath。send是一个转发serlvet,它的功能就是转发到url参数指定的URL地址中,之所有这样做,是因为所有的JSP页面都存放在WEB-INF是无法通过URL直接访问的,所以我写了一个Serlvet来转发它们。

SendAction.java

 1 package action;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.RequestDispatcher;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 /*
12  * 转发Action
13  */
14 public class SendAction extends HttpServlet {
15     private static final long serialVersionUID = 1L;
16
17     protected void doGet(HttpServletRequest request, HttpServletResponse response)
18             throws ServletException, IOException {
19         String url = request.getParameter("url");
20         if (null == url || "".equals(url)) {
21             url = "WEB-INF/jsp/404.jsp";
22         } else {
23             url = "WEB-INF/jsp/" + url;
24         }
25         RequestDispatcher rd = request.getRequestDispatcher(url);
26         rd.forward(request, response);
27     }
28
29     protected void doPost(HttpServletRequest request, HttpServletResponse response)
30             throws ServletException, IOException {
31         doPost(request, response);
32     }
33 }

在web.xml配置SendAction.

1     <servlet>
2         <servlet-name>SendAction</servlet-name>
3         <servlet-class>action.SendAction</servlet-class>
4     </servlet>
5     <servlet-mapping>
6         <servlet-name>SendAction</servlet-name>
7         <url-pattern>/send</url-pattern>
8     </servlet-mapping>

这样点击添加商品类型就会转发到type-save.jsp中。

 1 <html>
 2 <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 4 <%@ include file="top.jsp"%>
 5 <title>添加商品类型</title>
 6 </head>
 7 <body>
 8     <form action="${root}/type?action=save" method="post">
 9         <table>
10             <caption>添加商品类型</caption>
11             <tr>
12                 <td>类型名称:</td>
13                 <td><input type="text" name="name"/></td>
14                 <td>${msg}</td>
15             </tr>
16             <tr>
17                 <td colspan="3"><input type="submit" value="添加"/></td>
18             </tr>
19         </table>
20     </form>
21 </body>

表单的action是type?action=save,也就是调用type这个Servlet中的save方法:

 1 // 保存实体
 2     private String[] save(HttpServletRequest request, HttpServletResponse response) {
 3         String name = request.getParameter("name");
 4         if (name == null || "".equals(name)) {// 非空校验
 5             request.setAttribute("msg", "类型名称不能为空");
 6             return new String[] { "d", "WEB-INF/jsp/type-save.jsp" };
 7         }
 8         Type t = new Type();
 9         t.setName(name);
10         typeService.save(t);
11
12         String root = request.getContextPath();
13         // 重定向,客户端跳转
14         return new String[] { "r", root + "/type" };
15     }

首先进行非空检验,如果字段为空,将错误信息存放在request中然后转发会type-save.jsp。在type-save.jsp中${msg}就可以显示出错误提示了。

如果保存成功要做重定向,这样防止重复提交的问题,(当然还有设置客户端不缓存才可以,不然后退再提交也会重复提交)。重定向成功则跳转到首页显示所有类型

时间: 2024-10-08 02:05:36

基于JSP+Serlvet+JDBC的开发(4)-- 继续TypeSerlvet的save功能的相关文章

基于JSP+Serlvet+JDBC的开发(1)

好久没用JSP+Servlet+JDBC这种组合,可以说自从没有这种作业后就没有这种方式开发了.最近也没怎么学东西,感觉计划都乱了,趁着这个周末写点东西找找感觉. 这次想利用JSP+Servlet+JDBC写个小小的商品展示平台DEMO.功能很简单,就是能够展示商品的类型,然后根据类型展示所属类型的商品就可以了,说是小小的商品展示平台还不如说是一个增删查改的DEMO. 下图是整个项目的结构: 为了方便解耦,使用MVC模式进行开发,这里介绍各个包的作用: action 存放的servlet类,负责

基于JSP+Serlvet+JDBC的开发(2)- Servlet类的实现

上一篇我把项目的整个结构搭好了,这里写一下Servlet的实现. 利用Servlet开发有一个弊端就是每一个请求URL都要有对应的Servlet与之对应,但是这样会造成Servlet臃肿,在web.xml中也会出现一大堆Servlet配置信息.为了解决这个问题,我这里利用给Servlet传一个action参数来使一个Servlet处理一类请求. 具体实现如下: 在Serlvet中创建一个数组,记录所有请求这个Servlet的操作, 1 private static final String[]

基于JSP+Serlvet+JDBC的开发(5)-- 商品功能

在type-index.jsp中点击商品类型可以进入到该商品类型的所有商品.   商品类型为ITC10的商品信息 View层: goods-index.jsp 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 <%@ include file="top.jsp"%> 5

基于JSP+Serlvet+JDBC的开发(3)-- Service、DAO层实现

这里为了使不必在所有Service和DAO都写基础的增删查改,我写了两个基类接口,BaseService和BaseDAO BaseDAO.java (这里使用了泛型,PK 是主键,T是实体类型),这样其他DAO只要继承这个DAO就可以实现基础增删查改了. 1 package dao; 2 3 import java.io.Serializable; 4 import java.util.List; 5 6 /* 7 * 所有DAO接口继承此接口获取基本的增删查改规范 8 */ 9 public

java -------简单的基于jsp+servlet+jdbc登录

1 2 项目结构以及数据库表图片 3 4 5 package com.jmi.booklibmanage.service; 6 7 import java.sql.Connection; 8 import java.sql.DriverManager; 9 import java.sql.ResultSet; 10 import java.sql.SQLException; 11 import java.sql.Statement; 12 13 14 15 public class Studen

基于JSP的病历管理系统开发与设计,源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个病历管理系统(指出传统病案管理模式存在的问题,从新旧病案归档整理.电子病案的使用等方面介绍电子病案管理系统的实施,阐明实施电子病案管理的意义,包括节省存储空间,提高检索效率.病案质量与规范管理等.),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE.病历管理系统为一个 后台项目. 为了完成该系统,我们首先需要

JSP+Servlet+JDBC+Mysql实现的博客系统

本文存在视频版本,请知悉 项目简介 项目来源于:https://gitee.com/nanpingping/jsp-blog 这次分享个人博客系统,界面简洁大气,功能齐全,是不可多得的比较容易的系统,非常适合毕业设计或者课程设计. 本系统基于JSP+Servlet+JDBC+Mysql.涉及技术少,易于理解,适合JavaWeb初学者学习使用. 难度等级:简单 技术栈 编辑器 IntelliJ IDEA 2019.1.1 (Ultimate Edition) 前端技术 基础:html+css+Ja

JSP+Struts2+JDBC+Mysql实现的校园宿舍管理系统

项目简介 项目来源于:https://gitee.com/passenger134/javaweb-sushe 本系统基于JSP+Struts2+JDBC+Mysql的校园宿舍管理系统.该系统没有使用全套的SSH框架,只使用了跳转层Struts2,非常适合学习Struts2时使用. 难度等级:中等 技术栈 编辑器 Eclipse Version: 2019-12 (4.14.0) 前端技术 基础:html+css+JavaScript 框架:无 后端技术 JSP+Struts2+JDBC 数据库

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

最近看老罗视频,做了一个简单的用户注册系统.用户通过网页(JSP)输入用户名.真名和密码,Servlet接收后通过JDBC将信息保存到MySQL中.虽然是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理.下面先上源码: 一.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path =