JSP网站开发基础总结《六》
对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容。
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> </td><td>精确查找:<input type="text" name="queding"/><%if(request.getAttribute("new1")!=null){ %><span style="color: red"><%=request.getAttribute("new1")%></span><% } %></td><td> </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>
界面效果:
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页面精确搜索、模糊搜索
JSP网站开发基础总结《六》的更多相关文章
- JSP网站开发基础总结《二》
有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...
- JSP网站开发基础总结《一》
经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...
- JSP网站开发基础总结《八》
JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一 ...
- JSP网站开发基础总结《七》
按照计划本篇将为大家总结搜索功能的两种实现:确定搜索与模糊搜索.所谓精确搜索便是指,根据用户的输入的搜索内容,在数据库中寻找具有一一对应的关系的数据,一般都是用户在数据库中的主键值.而模糊搜索,是一种 ...
- JSP网站开发基础总结《十二》
前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...
- JSP网站开发基础总结《四》
经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查. 0.数据库对象创建: 在JAVASE基础知识总结时,就为大家 ...
- JSP网站开发基础总结《十三》
继上一篇为大家补充过滤器类后,本篇为大家简单介绍一下如何实现验证码效果.验证码的作用是什么呢?1.防止恶意注册2.防止恶意提交3.防止盗取账户等等,总的来说验证码的存在就是为了,防止非人为的操作,不过 ...
- JSP网站开发基础总结《九》
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...
- JSP网站开发基础总结《九》(转)
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...
随机推荐
- vim中输入tab符
今天在写Makefile时各种出错.后来发现是all:的下一行,make前面必须是tab符,不能是空格. 但是vim中只要按tab就会自动转换成4个空格.平时编程需要,也不便把这个设置取消. 查了下, ...
- Mac 问题
1.mac siri有什么用? 语音功能,感觉用处不是特别大 2.mac iphone 复制粘贴 没找到该怎么做. 3.icloud dirver 类似dropbox,不过网络应该不太好,不靠谱.
- "微空间"免费空间很棒哦,很适合中小网站站长
“微空间”(www.idcbt.com)是最长久的免费云主机 现在在站长圈子里面非常火爆的“微空间”免费空间网(www.idcbt.com)犹如火山爆发一样,瞬间成为了广大站长津津乐道的免费主机空间. ...
- IOS 计时器暂停和开始 防止重复点击
-(IBAction)btnClick{ [self starTimer];//开始计时 //[self stopTimer]; } -(NSTimer*)timer{ if (!_timer) { ...
- Linux2:vi、ls、cd、pwd、mkdir、rm、mv、cp、cat、tail
前言 从本篇文章开始,每篇文章将写10个Linux命令,个人的写作想法是: 1.常用的Linux命令,那些生僻的.不常用的就不写了 2.从实际考虑,只列出每个命令常见的用法和参数选项,有兴趣了解进一步 ...
- 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?并在Github注册账户,写一篇博客记录注册的过程。
问题一:上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?(以下内容为网上查询所得) Microsoft TFS(Team Foundation Server): 优点: ...
- Silverlight中异步调用WCF服务,传入回调函数
以前学的ASP.NET,调用的都是同步方法,同步方法的好处就是,一步一步走,完成这步才会走下一步.然而,WCF使用的都是异步方法,调用之后不管有没有获得结果就直接往下走,最可恶的是异步函数都是Void ...
- PosePlus的第一次突破
动作问题一定要解决 PosePlus是解决这个问题的库 (之前叫做CleanData.Ani,后来我想过,之前的设计各个库之间的依赖太重了) 现在把他们之间的依赖剥开. PosePlus解决几个问 ...
- java中基本类型和包装类型实践经验
至今,小菜用java快两年了,有些事,也该有个总结. 基本类型和包装类型的概念在本文不作赘述. 如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但 ...
- 使用CSS sprites减少HTTP请求
sprites是鬼怪,小妖精,调皮鬼的意思,初听这个高端洋气的名字我被震慑住了,一步步掀开其面纱后发觉很简单的东西,作用却很大 神马是CSS 小妖精 CSS sprites是指把网页中很多小图片(很多 ...