JSP网站开发基础总结《六》

news/2024/5/12 16:17:01/文章来源:https://blog.csdn.net/xiaozhen0610/article/details/107637302

  对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容。

 1、添加数据到数据库:

  如何用户在JSP页面的填写的信息输入到mysql数据库呢?其实原理很简单,就是我们在JSP页面里添加一个form表单标签,需要注意的是这里的action值填我们的用于与数据库库交互的select的地址,method标签有两个值可选:get和post,get方式的数据传输,不安全,传输的数据在地址栏可以看到,而post方式的传输就相对安全些,用户填写的数据不会显式让用户看到。设置好form表单标签后,当用户填写完表达后,点击提交,用户的填写的表单数据将会传输给我们的select,这样我们的select获得到数据后,通过调用我们之前编辑好的添加数据方法,便可以把用户的填写的数据添加到数据库。

  jsp页面代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%>
<%
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>添加数据</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="添加数据"><meta http-equiv="description" content="添加数据到数据库"></head><body><center><h1>添加数据到mysql数据库</h1><hr/><form action="add" method="post" id="form" name="form"><table><tr><td>姓名:</td><td><input type="text" name="name" /></td></tr><tr><td>性别:</td><td><input type="radio" name="sex" value="男" checked="checked"><input type="radio" name="sex" value="女"></td></tr><tr><td>年龄:</td><td><input type="text" name="year" /></td></tr><tr><td>家乡:</td><td><input type="text" name="from" /></td></tr><tr><td>学校:</td><td><input type="text" name="school" /></td></tr><tr><td align="center"><input type="submit" value="提交" /></td><td align="center"><input type="reset" value="重置"></td></tr></table></form></center></body>
</html>

  对于的select:

package com.mysql.jsp.select;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.mysql.jsp.manager.ManagerMaImp;
import com.mysql.jsp.sever.StudentMaImp;
import com.mysql.jsp.student.Student;public class add extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);//调用doPsot()方法,把使用get方式传输的数据用doPost()方向接收
    }public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");//设置编码方式response.setCharacterEncoding("utf-8");//设置编码方式//这里使用了一个登录验证String manager_name = (String)request.getSession().getAttribute("name");//获得登录用户的用户名String manager_password = (String)request.getSession().getAttribute("password");//获得登录用户的密码ManagerMaImp mmi = new ManagerMaImp();boolean login = mmi.getByName(manager_name, manager_password);//验证是否正确if(!login){request.setAttribute("news", "您还未登录,请先登录再进行操作");request.getRequestDispatcher("Login.jsp").forward(request, response);//不正确跳转到登录页}else{String name = request.getParameter("name");//获得用户填写的姓名String sex_ = request.getParameter("sex");//获得用户选择的性别int sex = 1;if(sex_.equals("女")){sex = 0;}int year = Integer.parseInt(request.getParameter("year"));//获得用户填写的年龄信息String from = request.getParameter("from");//获得用户填写的故乡信息String school = request.getParameter("school");//获得用户填写的学校信息//生成一个学生对象Student student = new Student();student.setName(name);student.setSex(sex);student.setYear(year);student.setFrom(from);student.setSchool(school);StudentMaImp smi = new StudentMaImp();boolean flag = smi.add(student);//调用添加方法,将数据添加到数据库if(flag){List<Student> list = new ArrayList<Student>();list = smi.getAll();request.setAttribute("list", list);request.getRequestDispatcher("All.jsp").forward(request, response);            }else{response.sendRedirect("Add.jsp");}}}
}

  对于向数据库添加信息,就为大家总结完毕,加上前几篇,我想大家应该已经明白如何通过JSP来做动态网站了吧。对于这里提到的是否登录验证,下面单独聊一下。

 3、登录验证:

  这个功能大家应该遇到过很多,一般当我们在一些网站下载资料时,会有一个会员是否登录验证,只有你登录了才能下载,这个小功能很简单,但比较实用。下面我们就一起学习一下,这里用到了一个关键字:session,我们只需要在用户登录成功后,将用户的账户和密码通过requset方式进行一下声明,之后我们就可以在任何页面或select中得到。

  声明代码:

request.getSession().setAttribute("name",name);request.getSession().setAttribute("password", password);

  调用代码:

String manager_name = (String)request.getSession().getAttribute("name");//获得登录用户的用户名String manager_password = (String)request.getSession().getAttribute("password");//获得登录用户的密码

 4、遍历数据库:

  添加数据我们已经学会了,下面我们一起学一下,如何把数据库中的所有数据遍历后,通过JSP页面为用户显示出来。

  后台select代码:

       StudentMaImp smi = new StudentMaImp();List<Student> list = new ArrayList<Student>();list = smi.getAll();request.setAttribute("list", list);request.getRequestDispatcher("All.jsp").forward(request, response);

  JSP页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%>
<%@page import="com.mysql.jsp.student.Student"%>
<%
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>遍历数据库</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"></head><body><% List<Student> list = (List<Student>)request.getAttribute("list"); %><center><h1>遍历数据库中的数据</h1><hr/><form action="get" method="post"><table width="80%"><tr><td><a href="Add.jsp">添加</a></td><td>&nbsp;</td><td>精确查找:<input type="text" name="queding"/><%if(request.getAttribute("new1")!=null){ %><span style="color: red"><%=request.getAttribute("new1")%></span><% } %></td><td>&nbsp;</td><td>模糊查找:<input type="text" name="mohu"/><%if(request.getAttribute("new2")!=null){ %><span style="color: red"><%=request.getAttribute("new2")%></span><% } %></td><td><input type="submit" value="搜索"/></td></tr></table></form><table border="1" width="80%"><TR><TD>ID</TD><td>姓名</td><td>性别</td><td>年龄</td><td>家乡</td><td>学校</td><td colspan="2">操作</td></TR><%if(list.size()!=0){for(int i=0; i<list.size(); i++){Student student = list.get(i);%><tr><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %><%}else{ %><%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td><td><a href="getId?id=<%=student.getId() %>">修改</a></td><td><a href="del?id=<%=student.getId() %>">删除</a></td></tr><%}}%></table></center></body>
</html>

  界面效果:

  181544101428084.jpg

 5、删除数据:

  既然是删除操作,也就没有界面了,但我们点击删除后,select接到我们发送过去的数据信息,根据这些信息调用我们之前写好的删除方法,完成删除操作。

  select代码:

public class del extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);//删除操作,发送数据的方式便是get方式,我们可以在地址栏看到我们发送过来的数据信息
    }public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String manager_name = (String)request.getSession().getAttribute("name");String manager_password = (String)request.getSession().getAttribute("password");ManagerMaImp mmi = new ManagerMaImp();boolean login = mmi.getByName(manager_name, manager_password);if(!login){request.setAttribute("news", "您还未登录,请先登录再进行操作");request.getRequestDispatcher("Login.jsp").forward(request, response);}else{int id = Integer.parseInt(request.getParameter("id"));StudentMaImp smi = new StudentMaImp();boolean flag = smi.del(id);if(flag){List<Student> list = new ArrayList<Student>();list = smi.getAll();request.setAttribute("list", list);request.getRequestDispatcher("All.jsp").forward(request, response);}else{response.sendRedirect("error.html");}}}}

 6、更新操作:

  学完了添加、删除、遍历操作后,接下来我们一起来学习一下更新操作。

  更新操作的JSP页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%>
<%@page import="com.mysql.jsp.student.Student"%>
<%
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>修改数据</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="修改数据"><meta http-equiv="description" content="修改数据到数据库"></head><body><%Student student = (Student)request.getAttribute("student"); %><center><h1>修改数据到mysql数据库</h1><hr/><form action="update" method="post" ><table><tr><!--  disabled="disabled":销毁的,select无法得到它的值   --><!--  readonly="readonly":只读的,select可以读出值  --><td>id:</td><td><input type="text" name="id" readonly="readonly" value="<%=student.getId() %>" /></td></tr><tr><td>姓名:</td><td><input type="text" name="name" value="<%=student.getName() %>"/></td></tr><tr><td>性别:</td><td><input type="radio" name="sex" value="男" <%if(student.getSex()==1){ %>checked="checked"<%} %> >男<input type="radio" name="sex" value="女" <%if(student.getSex()==0){ %>checked="checked"<%} %> >女</td></tr><tr><td>年龄:</td><td><input type="text" name="year" value="<%=student.getYear() %>"/></td></tr><tr><td>家乡:</td><td><input type="text" name="from" value="<%=student.getFrom() %>"/></td></tr><tr><td>学校:</td><td><input type="text" name="school" value="<%=student.getSchool() %>"/></td></tr><tr><td align="center"><input type="submit" value="更新" /></td><td align="center"><input type="reset" value="重置"></td></tr></table></form></center></body>
</html>

  既然是更新,我们需要首先通过select获得需要更新信息的对象,然后将对象数据发送给JSP页面,代码:

public class come extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {StudentMaImp smi = new StudentMaImp();List<Student> list = new ArrayList<Student>();list = smi.getAll();request.setAttribute("list", list);request.getRequestDispatcher("All.jsp").forward(request, response);}}

  用户接收用户修改的数据,并进行数据更新的select:

public class update extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String manager_name = (String)request.getSession().getAttribute("name");String manager_password = (String)request.getSession().getAttribute("password");ManagerMaImp mmi = new ManagerMaImp();boolean login = mmi.getByName(manager_name, manager_password);if(!login){request.setAttribute("news", "您还未登录,请先登录再进行操作");request.getRequestDispatcher("Login.jsp").forward(request, response);}else{int id = Integer.parseInt(request.getParameter("id"));String name = request.getParameter("name");String sex_ = request.getParameter("sex");int sex = 1;if(sex_.equals("女")){sex = 0;}int year = Integer.parseInt(request.getParameter("year"));String from = request.getParameter("from");String school = request.getParameter("school");Student student = new Student();student.setId(id);student.setName(name);student.setSex(sex);student.setYear(year);student.setFrom(from);student.setSchool(school);StudentMaImp smi = new StudentMaImp();boolean flag = smi.update(student);if(flag){List<Student> list = new ArrayList<Student>();list = smi.getAll();request.setAttribute("list", list);request.getRequestDispatcher("All.jsp").forward(request, response);}else{response.sendRedirect("error.html");}}}}

  好了,到这里对于通过JSP实现对数据库的增、删、改、遍历操作,就为大家总结完毕。下一篇:JSP页面精确搜索、模糊搜索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_804887.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP网站开发基础总结《一》

经过JAVASE的学习相信大家对JAVA已经不再陌生&#xff0c;那么JAVA都可以干什么呢&#xff1f;做算法、应用程序、网站开发都可以&#xff0c;从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结。 既然是动态网站开发&#xff0c;那它与传统的静态网站有什么区别呢&#xf…

支付宝网页服务器出错500,YunCart电商网站支付宝接口出现500错误

yuncart 是一套易与集成的php开源商城系统&#xff0c;方便多人同时经行二次开发&#xff0c;Yuncart 可以以非常方便的方式切换到sql server&#xff0c;oracle等数据库,大小1.9MB&#xff0c;感兴趣的朋友&#xff0c;可以去官网下载。最近帮朋友用php做了一个电商网站&#…

使用Express开发个人网站(一)

Express&#xff0c;基于Node.js平台&#xff0c;快速、开放、极简的 web 开发框架。 Node的出现&#xff0c;让js有了运行在服务器端的可能&#xff0c;基于此的Express&#xff0c;可以快速&#xff0c;简单的搭建起一个服务器与个人网站。 安装 首先安装nodejs&#xff0c;…

网站软件开发规范(某门户网站的)

网站软件开发规范(某门户网站的) --------------------------------------------------------------------------------1数据库使用规范1.1服务器上有关数据库的一切操作只能由服务器管理人员进行。1.2程序中访问数据库时使用统一的用户、统一的连接文件访问数据库。1.3原则上每…

超级好用的解析JSON数据的网站

超级好用的解析JSON数据的网站 网址 http://json.parser.online.fr/beta/ 效果图 测试数据 {"city":{"id":1816670,"name":"Beijing","coord":{"lon":116.397232,"lat":39.907501},"country"…

高并发高流量网站架构

Web2.0的兴起&#xff0c;掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念&#xff0c;细分了网站功能和用户群&#xff0c;不仅成功的造就了一大批新生的网站&#xff0c;也极大的方便了上网的人们。但Web2.0以用户为导向的理念&#xff0c;使得新生的网站有…

方配精美企业网站模板整站免费下载

大量精美企业网站模板整站免费下载&#xff1a;http://www.fangpage.com/sitelist-20.aspx 每一款网站产品都是为行业用户度身定制的成品网站&#xff0c;具有适合行业的设计风格、栏目内容布局和功能强大的网站管理系统而且免费下载&#xff0c;安装即可使用&#xff0c;无功能…

[转载]新手应该如何学习网站分析

【转载自】http://www.chinawebanalytics.cn/how-to-learn-web-analytics-for-newbies-ii-2/ 还是在去年&#xff0c;写了一篇文章《【读者来信】新手该怎样学习网站分析&#xff1f;》&#xff08;http://www.chinawebanalytics.cn/【读者来信】新手该怎样学习网站分析&#x…

有些网站打开一半空白_谷歌推进“移动优先索引” 对外贸网站建设的影响

2016年11月&#xff0c;谷歌开始实验性地做出移动优先索引的调整。在此之前&#xff0c;谷歌搜索引擎的网页抓取、索引和排名系统仅展现网页的电脑版内容。为什么推优先索引移动版内容推出这项方式并不是拍脑袋拍出来的&#xff0c;根据统计&#xff0c;现在移动互联网流量已经…

监控器材律师网站制作_市南消防系统维护保养价格_新民安消防器材

首页 > 新闻中心发布时间&#xff1a;2020-11-11 23:24:17 导读&#xff1a;新民安消防器材为您提供市南消防系统维护保养价格的相关知识与详情&#xff1a; 其次&#xff0c;要养成良好的生活习惯&#xff0c;不要乱扔烟蒂。控制及联动方面&#xff0c;你知道检查哪几个方面…

【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...

开篇先给大家讲段历史故事&#xff0c;博主是湖北襄阳人。襄阳物华天宝&#xff0c;人杰地灵&#xff0c;曾用名襄樊。在2800多年的历史文化中出现了一代名相诸葛亮&#xff08;卧龙&#xff09;&#xff0c;三国名士庞统&#xff08;凤雏&#xff09;&#xff0c;魏晋隐士司马…

音乐上传网站_音乐接歌类视频一天300多,从素材到成品,制作流程全部分享

现在很多人看到别人做影视剪辑都是高播放、高收入&#xff0c;但是自己却总是因为各种问题望而却步。虽然建议新手做二次剪辑&#xff0c;但是真心不建议新手一开始就做影视类的&#xff0c;为什么呢&#xff1f;1. 新手容易有版权问题2. 没有经验的新手做影视剪辑会很耗时间那…

高并发高流量网站架构(转)

Web2.0的兴起&#xff0c;掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念&#xff0c;细分了网站功能和用户群&#xff0c;不仅成功的造就了一大批新生的网 站&#xff0c;也极大的方便了上网的人们。但Web2.0以用户为导向的理念&#xff0c;使得新生的网站有…

以Apache服务器、php语言为例 详解动态网站的访问过程

目前来说&#xff0c;网站页面主要分为静态页面和动态页面&#xff0c;纯静态页面组成的网站现在相对比较少见&#xff0c;大型网站一般使用的是动态网站建站技术&#xff0c;还有一部分网站是静态网页与动态网页共存&#xff0c; 本文以Apache服务器、php语言为例&#xff0c;…

Office 365系列六 ------ 创建sharepoint online网站

这节跟大家介绍简单的创建sharep online私有网站集&#xff0c;sharepoint online 可以给我们提供开箱即用的功能&#xff0c;比如文档库&#xff1a;可以给我们取代File Server&#xff0c;提供了版本管理&#xff0c;版本变迁内容比较、 文档权限管理、基于文档内容搜索等Fil…

Java开发者必去的技术网站

<script type"text/javascript">function StorePage(){ddocument;td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyitwindow.open(http://www.365key.com/storeit.aspx?tescape(d.titl…

Node.js + Express + Mongodb 开发搭建个人网站(一)

一、Node Express环境搭建 0、去Node官网下载安装node&#xff0c;如果安装了 npm 和 node的话 那么就 安装 全局的 express&#xff0c;-g全局安装 npm install express –g 1、然后使用 express 创建项目&#xff0c;命令&#xff1a; express 项目名 初始化一个node项目…

icework根据模型生成html,假装前端工程师(一)Icework + GitHub pages 快速构建与部署可自定义迭代开发的 react 网站...

icework gh-pages 超快部署超多模版页面前言GitHub 账号 与它的 pages 服务不需要任何准备的东西&#xff0c;服务器&#xff1f;域名&#xff1f;前端工程师&#xff1f; 都不需要&#xff01;只需要你有就能够享受到建立自己网站的乐趣。飞冰现在搭配飞冰&#xff0c;还能让…

我国公布整治互联网低俗之风第二批曝光网站名单

2009-01-08 17:04:08 来源: 中新网(北京) 网友评论 843 条 点击查看核心提示&#xff1a;中国互联网协会互联网违法和不良信息举报中心8日公布全国整治互联网低俗之风第二批曝光网站名单。 中新网1月8日电 中国互联网协会互联网违法和不良信息举报中心今日发布公告&#xff0…

剖析SNS网站的现状,预测其发展趋势

-------导读------------1、SNS的由来和价值2、SNS区别与BBS和社区网站3、点评目前SNS网站的现状和价值取向4、SNS的盈利模式5、未来SNS的发展趋势 1、SNS的由来和价值 在谈SNS之前我们先认清一下SNS的几个概念&#xff1a; SNS定义&#xff1a;Social Network Software&#…