1.先在jsp文件创建html界面
表格中的action要跟Servlet代码中的名字一样
<form action=" TestServlet26" method="get ">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
在Servlet项目中的get方法中有如下代码
//1.获取用户名.密码
String username=request.getParameter("username");
String password=request.getParameter("password");
//2.判断用户名和密码是否正确
if(username.equals("tcb")&&password.equals("123")){
response.sendRedirect("welcome.jsp");
}else{
response.sendRedirect("login.jsp");
}
//3.如果正确,跳转到welcome.jsp
//4.如果不正确,跳转到login.jsp
Student代码:
登录代码:
<form action=" LoginServlet" method="get ">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
String username=request.getParameter("username");
String password=request.getParameter("password");
request.setCharacterEncoding("utf-8");
//把用户名存储到request域对象中
request.setAttribute("username", username);
if(username.equals("tcb")&&password.equals("tcb")){
//重定向
//response.sendRedirect("welcome.jsp");
//请求转发
RequestDispatcher dispatcher=request.getRequestDispatcher("welcome.jsp");
dispatcher.forward(request, response);
}else{
//response.sendRedirect("logins.jsp");
//发送到logins界面
RequestDispatcher dispatcher=request.getRequestDispatcher("logins.jsp");
dispatcher.forward(request, response);
}
接收代码:
<body>
${username}欢迎您,登录成功;
</body>
注册代码:
<form action="RegisterServlet26" method="get">
学号:<input type="text" name="no"/><br>
姓名:<input type="text" name="name"/><br>
性别:<input type="radio" name="sex" value="男"/>男
<input type="radio" name="sex" value="女"/>女<br>
专业:<input type="text" name="profession"/><br>
<input type="submit" value="注册">
</form>
response.setContentType("text/html;charset=utf-8");
//1.请求网页的数据
String no=request.getParameter("no");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String profession=request.getParameter("profession");
//2.把请求到的数据存储域对象里
Student student=new Student();
student.setS_id(no);
student.setS_name(name);
student.setS_sex(Boolean.getBoolean(sex));
student.setS_major(profession);
request.setAttribute("student", student);
//3.请求转发到showmessage.jsp去显示信息
//请求转发
RequestDispatcher dispatcher=request.getRequestDispatcher("showmessage.jsp");
dispatcher.forward(request, response);
接收代码
<body>
恭喜您注册成功,您的学号是${student.getS_id()};姓名:${student.getS_name()};性别:${student.getS_sex()}专业:${student.getS_major()};
</body>
查询界面:
<form action=" SelectServlet" method="get ">
请输入学号:<input type="text" name="id">
<input type="submit" value="查询">
</form>
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
String id=request.getParameter("id");
List<Student> stus=new ArrayList<Student>();
stus.add(new Student("20171216","田超斌",true,"软件工程"));
stus.add(new Student("19002","李白",false,"计算机"));
stus.add(new Student("19101","刘名动",true,"金融"));
stus.add(new Student("19003","李嘉豪",true,"计算机"));
stus.add(new Student("19102","陈晨",false,"金融"));
int a=0;
for(int i=0;i<stus.size();i++){
if(stus.get(i).getS_id().equals(id)){
a=1;
request.setAttribute("stus", stus.get(i));
break;
}else{
a=0;
}
}
request.setAttribute("id", id);
if(a==1){
RequestDispatcher dispatcher=request.getRequestDispatcher("yes.jsp");
dispatcher.forward(request, response);
}else if(a==0){
RequestDispatcher dispatcher=request.getRequestDispatcher("no.jsp");
dispatcher.forward(request, response);
}
数据库查询数据
输入数据界面
<form action="SelectStusLikeServlet" method="post">
请输入姓名:<input type="text" name="name">
<input type="submit" value="查询"><input type="submit" value="查询全部">
</form>
sevlet服务代码
package action;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.Student;
/**
* Servlet implementation class SelectStusLikeServlet
*/
@WebServlet("/SelectStusLikeServlet")
public class SelectStusLikeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
PreparedStatement pstmt=null;
/**
* @see HttpServlet#HttpServlet()
*/
public SelectStusLikeServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/edu?useUnicode=true&characterEncoding=UTF-8";
String userName="root";//自己数据库的账号
String password="";//自己数据库的密码
conn=DriverManager.getConnection(url, userName, password);
//第二个方法
String sql="select * from student where s_name like ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, "%".concat(name).concat("%"));//1是指sql语句的第一个?;
rs=pstmt.executeQuery();
//第一个方法
//stmt=conn.createStatement();
//String sql="select * from student where s_name like '%".concat(name).concat("%'");
//rs= stmt.executeQuery(sql);
//这里定义一个列表,把结果集中的Student的对象存放列表中
List stus=new ArrayList<Student>();
while(rs.next()){
//把结果集当前的数据转成一个Student对象
Student s=new Student();
s.setS_id(rs.getString("s_id"));
s.setS_name(rs.getString("s_name"));
s.setS_sex(rs.getBoolean("s_sex"));
s.setS_birthday(rs.getDate("s_birthday"));
s.setS_major(rs.getString("s_major"));
s.setS_scholarship(rs.getInt("s_scholarship"));
//把对象存到列表
stus.add(s);
// String xh= rs.getString("s_id");
// String xm=rs.getString("s_name");
// String xb=rs.getString("s_sex");
// Date csrq =rs.getDate("s_birthday");
// System.out.println("xh="+xh+",xm="+xm+",xb="+xb+",csrq="+csrq);
}
//把列表存到域对象
request.setAttribute("stus", stus);
RequestDispatcher dispatcher=request.getRequestDispatcher("selectResult.jsp");
dispatcher.forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
conn.close();
pstmt.close();
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
接收界面
<body>
<c:out value="Hello world!"></c:out>
<table id="customers">
<tr>
<th>学号</th>
<th>姓名</th>
<th>性别</th>
<th>出生日期</th>
<th>专业</th>
<th>奖学金</th>
</tr>
<!--是一个循环 -->
<c:forEach var="s" items="${stus }">
<tr>
<td>${s.s_id }</td>
<td>${s.s_name }</td>
<td>
<c:if test="${s.s_sex==true }">男</c:if>
<c:if test="${s.s_sex==false }">女</c:if>
</td>
<td>${s.s_birthday }</td>
<td>${s.s_major }</td>
<td>${s.s_scholarship }</td>
</tr>
</c:forEach>
</table>
</body>