⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servlet.java

📁 高校学生信息管理,实现了高校信息化
💻 JAVA
字号:
//servlet,用与获取页面发送过来的request,然后调用StudentService,并返回response

package servlet;

import student.Student;
import student.StudentService;
import student.StudentDao;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.*;
import javax.servlet.http.*;


public class Servlet extends HttpServlet
{
	private static final long serialVersionUID = 6572286062176280161L;

	//public void init() throws ServletException
	HttpServletRequest request;
	HttpServletResponse response;
	HttpSession session;
	
	Student st=new Student();
	StudentService ss=new StudentService();
	
	//这里处理添加、删除、查询等操作
	public void doGet(HttpServletRequest req,HttpServletResponse res)
    throws IOException, ServletException
    {
		request=req;
		response=res;
		
		session = request.getSession();
		
		st=setValueToStudent(request);
		
        //	显示所有学生信息
		if(request.getRequestURI().equals("/StudentDBMS/student/showAllStudent"))
		{
			StudentDao sd=new StudentDao();
			try 
			{
				ArrayList<Student> studentlist=sd.getStudentList("select * from student");
				HttpSession session=request.getSession();
				session.setAttribute("studentList", studentlist);
				response.sendRedirect("studentDB.jsp");  //重定向可以共享session中的数据,返回给studentDB.jsp一个studentList
                //request.setAttribute("studentList", studentlist);
				//RequestDispatcher redisp= request.getRequestDispatcher("studentDB.jsp");
				//redisp.forward(request, response);
			}
			catch (SQLException e)
			{
				e.printStackTrace();
			}
			
		}
		
		//添加学生信息
		if(request.getRequestURI().equals("/StudentDBMS/student/add"))
		{
			//StudentService ss = new StudentService();
			Student student = this.setValueToStudent(request);
			boolean flag = ss.addStudent(student);
			if(flag)
				response.sendRedirect("showAllStudent");
			//response.setHeader("Location","studentDB.jsp");
			else
			{
				response.sendRedirect("error.jsp");
				System.out.println("主键(学号)冲突,不能插入该学生信息!");
			}
		}
			
		//删除学生信息
		if(request.getRequestURI().equals("/StudentDBMS/student/del"))
		{
			try 
			{
				String str=(String)request.getParameter("NumId");
				ss.del(str);
				response.sendRedirect("showAllStudent");
			} 
			catch (SQLException e) 
			{
				e.printStackTrace();
				response.sendRedirect("error.jsp");
			} 
			catch (Exception e)
			{
				e.printStackTrace();
				response.sendRedirect("error.jsp");
			}
		}
			
        //查询学生信息,并在页面显示
		if(request.getRequestURI().equals("/StudentDBMS/student/find"))
		{
			try
			{
			    ArrayList<Student> studentlist;
				studentlist=ss.find((String)request.getParameter("name"),(String)request.getParameter("age"),
									 (String)request.getParameter("num"),(String)request.getParameter("class"));
				//HttpSession session=request.getSession();
				//session.setAttribute("studentList", studentlist);
				//response.sendRedirect("studentDB.jsp"); 
				request.setAttribute("studentList", studentlist);
				RequestDispatcher redisp= request.getRequestDispatcher("studentDB.jsp");
				redisp.forward(request, response);  //request.getRequestDispatcher("/find.jsp").forward(request, response);
				//response.sendRedirect("find.jsp");  sendRedirect是重定向,可以传递session范围内的参数,但是不能传递request的参数
			}
			catch(Exception e)
			{
			   	e.printStackTrace();
			   	response.sendRedirect("error.jsp");
			}
			
		}
		
		
		if(request.getRequestURI().equals("/StudentDBMS/student/firstModify"))
		{
			try
			{
				Student st=new Student();
				if(request.getParameter("NumId")!=null)
				{
					StudentDao sd=new StudentDao();
					try
					{
						st=sd.returnstudent((String)request.getParameter("NumId"));
					}
					catch (SQLException e) 
					{
						e.printStackTrace();
					}
				}
				//这里需要一个全局的变量"id"用来存放需要修改学生的学号
				session.setAttribute("id",(String)request.getParameter("NumId"));
				//或者存放在this.getServletContext().setAttribute("id",(String)request.getParameter("NumId"));
				
				/**session.setAttribute("student", st);   //这里如果将student放在session里,其生命周期过长,添加时有问题
				   response.sendRedirect("modify.jsp");
				*/
				request.setAttribute("student", st);
				RequestDispatcher redisp= request.getRequestDispatcher("modify.jsp");
				redisp.forward(request, response); 
								
			}
			catch(Exception e)
			{
			   	e.printStackTrace();
			   	response.sendRedirect("error.jsp");
			}
			
		}
		
		//添加、修改学生信息
		if(request.getRequestURI().equals("/StudentDBMS/student/modify"))
		{
			st=setValueToStudent(request);
						
			boolean is=false;
			//ArrayList<Student> studentlist = null;
			try 
			{   //读取存放在session中的变量"id",即学生学号
				String id=(String)session.getAttribute("id");
				//studentlist=ss.returnstudent(id);
				//is=ss.modify(studentlist, st, id);//(studentlist,request,response);
			    is=ss.mod(st, id);
			}
			catch (SQLException e) 
			{
				e.printStackTrace();
			}
			if(is)response.sendRedirect("showAllStudent");
			else response.sendRedirect("error.jsp");
		 }
		
    }
	
	public void doPost(HttpServletRequest req,HttpServletResponse res)
    throws IOException, ServletException
    {
		//注意参数传递
		request=req;
		response=res;
		doGet(request,response);
	}
	
	//将request中的学生信息封装在Student类st中
	public Student setValueToStudent(HttpServletRequest request)
	{
		//Student st=new Student();
		st.setStudentName(request.getParameter("name"));
		st.setStudentAge(request.getParameter("age"));
		st.setStudentNum(request.getParameter("num"));
		st.setStudentClass(request.getParameter("class"));
		return st;
	}
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -