五、按姓名查询的JSP+jdbc+Servlet

标签: java servlet mysql jdbc jsp
20人阅读 评论(0) 收藏 举报
分类:

因为按要求查询都是差不多一样的,所以举个栗子

详细说按姓名查询,然后其他的查询就贴代码了

-----------------------------------------------------------

需要的文件:

JSP页面:SearchName.jsp

Bean类:AddMessageBean.java  

Dao文件:AddMessageDao.java

Servlet文件:SearchName.java

Servlet配置:web.xml

---------------------------------------------------------------

SearchName.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import ="bean.AddMessageBean" %>  
<%@ page import ="java.util.List" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>按姓名查询</title>
<link rel="stylesheet" type="text/css" href="css/daohanglan1.css"/>
<link rel="stylesheet" type="text/css" href="css/tablecss.css"/>
</head>
<body>
	<div>
		<ul class="nav">  
		    <li><a href="AddMessage.jsp">学生录入</a></li>
		    <li><a href="AddWorkTime.jsp">工时录入</a></li>  
		    <li><a href="TimeManage.jsp">工时管理</a></li>   
		</ul>  
	</div>
	<div>
		<ul class="nav">  
		    <li><a href="TimeManage.jsp" id="btn1">全部信息</a></li>
		    <li><a href="SearchName.jsp" id="btn2">按姓名查询</a></li>  
		    <li><a href="SearchSex.jsp" id="btn3">按性别查询</a></li>  
		    <li><a href="SearchYear.jsp" id="btn4">按年份查询</a></li>
		    <li><a href="SearchID.jsp" id="btn5">按学号查询</a></li> 
		    <li><a href="SearchIns.jsp" id="btn6">按学院查询</a></li> 
		    <li><a href="SearchPro.jsp" id="btn7">按专业查询</a></li> 
		    <li><a href="SearchLevel.jsp" id="btn8">按贫困等级查询</a></li>   
		</ul>  
	</div>
	<div>
		<form action="SearchName" method="post">	<!-- Servlet名字为SearchName -->
		请输入姓名:<input type="text" name="name" >
		<input type="submit" value="查询" />
		</form>
		<hr/>
	</div>
    <div>
		<table border="1.5" bordercolor="black" style="border-collapse:collapse;margin-left: auto; margin-right: auto;">
			<tr><th>学号</th><th>学生姓名</th><th>性别</th><th>入学年份</th><th>学院</th><th>专业</th><th>贫困等级</th><th>详细信息</th><th>其他操作</th></tr>
			<%
			//新建一个AddMessageBean类的列表,名字为SearchName
			//getAttribute:将SearchName信息的值给SearchName
				List<AddMessageBean> SearchName=(List<AddMessageBean>)request.getAttribute("SearchName");
				if(SearchName!=null&&!SearchName.isEmpty()){
					for(AddMessageBean times : SearchName){
			%>
			<tr>
			<td><%=times.getNum() %></td>	<!-- 用对应的get方法,将times类的值返回 -->
			<td><%=times.getName() %></td>
			<td><%=times.getSex() %></td>
			<td><%=times.getYear() %></td>
			<td><%=times.getCollege() %></td>
			<td><%=times.getMajor() %></td>
			<td><%=times.getPoor() %></td>
			<td>
			<a href="Detail?num=<%=times.getNum() %>">查看</a> 	<!-- 调用servlet类Detail,并且num是等于getNum返回的值 -->
			</td>
			<td>
			<a href="Delete?num=<%=times.getNum() %>">删除</a>	<!-- 调用servlet类Delete,并且num是等于getNum返回的值 -->
			</td>
			<%
					}
				}
			%>
		</table>
	</div>
</body>
</html>

----------------------------------------------------------------------

这一部分,点击查询按钮后,根据action的值,查找web.xml

		<form action="SearchName" method="post">	<!-- Servlet名字为SearchName -->
		请输入姓名:<input type="text" name="name" >
		<input type="submit" value="查询" />
		</form>

---------------------------------------------------

web.xml中

        <servlet>
  	<servlet-name>SearchName</servlet-name>
  	<servlet-class>servlet.SearchName</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>SearchName</servlet-name>
  	<url-pattern>/SearchName</url-pattern>
  </servlet-mapping>

url-pattern等于action的值

所以对应的servlet-name名字为SearchName,而名字为SearchName的<servlet>调用的servlet为servlet包中的SearchName

-------------------------------------------------------------

SearchName.java

package servlet;
import java.io.*;
import java.sql.*;
import java.util.List;

import javax.servlet.*;
import javax.servlet.http.*;
import dao.AddMessageDao;
import bean.AddMessageBean;
public class SearchName extends HttpServlet{
	private static final long serialVersionUID = 1L;  
	  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        this.doPost(req, resp);  
    }
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {
    	//设置编码,防止乱码
    	req.setCharacterEncoding("UTF-8"); 
    	resp.setCharacterEncoding("UTF-8");
    	//将JSP中name="name"的值赋给Sring类型的name
    	String name=req.getParameter("name");
    	//新建一个AddMessageDao
    	AddMessageDao dao = new AddMessageDao();
    	String sql = "select * from stumessage where name ='";
        sql += name + "'";
        //创建一个列表,调用dao的SearchName
    	List<AddMessageBean> SearchName = dao.SearchName(name);  
        //保存查询的信息用setAttribute将值给SearchName    
        req.setAttribute("SearchName", SearchName);
        //转发请求  
        req.getRequestDispatcher("/SearchName.jsp").forward(req, resp);  
    }
}

--------------------------------------------------------

AddMessageDao中的SearchName函数

    public List<AddMessageBean> SearchName(String Name) {  
  	  
        Connection conn = null;  
        Statement stmt = null;  
        List<AddMessageBean> classList= new ArrayList<AddMessageBean>();  
        try {  
            // 获取连接  
        	conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","root"); 
            // 整理一条SQL语句  
            String sql = "select * from stumessage where name ='";
            sql += Name + "'";
            // 创建执行sql的对象 
            stmt = conn.createStatement();  
            //执行sql语句  
            ResultSet rs =stmt.executeQuery(sql);  
            //遍历结果集  
            while(rs.next()){  
                String num =rs.getString("num");  
                String name=rs.getString("name");  
                String sex =rs.getString("sex");  
                String college =rs.getString("college");  
                String year =rs.getString("year");  
                String major =rs.getString("major");  
                String poor =rs.getString("poor");  
                AddMessageBean bean = new AddMessageBean();  
                bean.setNum(num);  
                bean.setName(name);
                bean.setSex(sex);
                bean.setCollege(college);
                bean.setYear(year);
                bean.setMajor(major);
                bean.setPoor(poor);  
                classList.add(bean);  
            }  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
        return classList;  
    }

然后按照姓名查询就可以了


-----------------------------------------------------------------------

说一下,重点

SearchName.java的req.setAttribute("SearchName", SearchName);是将值赋给名字为"SearchName"

然后在页面SearchName.jsp的request.getAttribute("SearchName");就是将"SearchName"名字的值取出来

-------------------------------------------------------

然后下面几张我就把其他查询的代码都贴出来先吧。

查看评论

SQL server 实验五 (sql 查询语句)

实验五 一.实验目的: 熟练掌握使用SELECT语句进行数据查询。 二.实验内容: 一)对数据库stuinfo进行如下操作: 1. 查询student表中的学号、姓名和年龄并为列设置别名,结果按学号...
  • adreammaker
  • adreammaker
  • 2017-03-20 21:13:30
  • 863

sql基础练习

准备数据建表语句CREATE TABLE students (sno VARCHAR(3) NOT NULL, sname VARCHAR(4) NOT NULL, ssex VARCHAR(2) ...
  • qq_30764991
  • qq_30764991
  • 2018-04-10 22:40:59
  • 17

Oracle 10g如何对用户姓名,按首字母排序、查询

首先介绍Oracle 9i新增加的一个系统自带的排序函数  1、按首字母排序  在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值      SCHINESE_RAD...
  • a497785609
  • a497785609
  • 2014-03-22 10:25:26
  • 5057

MySQL查询按姓氏拼音排序

order by CONVERT(b.name USING gbk)
  • sam_jet
  • sam_jet
  • 2014-07-07 15:31:42
  • 1993

C++ 教学管理系统

  • 2012年12月22日 13:21
  • 9.93MB
  • 下载

AngularJs根据姓名查询

//搜索的代码   把文本框的值赋给cc变量   根据文本框的值筛选 $scope.sou=function(){ $scope.cc=$scope.name; }             //...
  • lishuaileibo
  • lishuaileibo
  • 2017-12-07 19:16:03
  • 47

查询+正序+增加

Title table{ border-collapse: collapse; } td{ p...
  • mzr777
  • mzr777
  • 2017-10-23 13:23:20
  • 92

c++ 名字查找

名字查找 有限制的名字查找 有限制的名字查找是指名字出现在“::”(作用域解析符)的右面。有限制的名字可能包括以下几种: 类成员名字空间成员(可能包括另一个空间)enumerator ...
  • nilbooy
  • nilbooy
  • 2016-05-11 16:35:42
  • 457

根据姓名查找学生的学号

/*Copyright (c) 2013 ,烟台大学计算机学院 *All rights reserved. 作者:王至超 *完成日期:2013年12月10 *版本号:v1.0 *问题描述:用指针的方法...
  • u012369175
  • u012369175
  • 2013-12-11 16:38:17
  • 918

[新手向]Oracle常用查询实例(一)

1.查询scott用户下的所有表 > select * from tabs; 2.查询雇员表中的全部信息 > select * from emp; 3.查询雇员编号,姓名,工作,工资。 ...
  • a18602320276
  • a18602320276
  • 2017-07-14 17:11:20
  • 553
    个人资料
    等级:
    访问量: 224
    积分: 101
    排名: 126万+
    文章存档