java8生成jsp页面内容组装到jsp中_新手详解JAVA+数据库+JSP完成简单页面

本文通过实例讲解如何利用Java8结合数据库完成JSP页面内容的生成和组装。首先介绍了实体类、数据库连接方法,接着展示了一个Servlet如何从jsp接收参数,创建实体对象并调用Service层进行数据验证和添加操作。Service层通过调用Dao层的方法检查重名并执行添加。最后, Dao层实现了数据库操作,包括验证唯一性和数据插入。在添加成功后,信息会传递到add.jsp页面显示。
摘要由CSDN通过智能技术生成

本篇以数据库添加为例(本例中数据库名为“xinxi”表单名字为“stud”)

准备---实体层:

packageentity;

public classStudent {

privateString name;

privateString adress;

privateString qq;

public voidsetName(String name) {

this.name=name;

}

publicString getName() {

returnname;

}

public voidsetAdress(String adress) {

this.adress=adress;

}

publicString getAdress() {

returnadress;

}

public voidsetQq(String qq) {

this.qq=qq;

}

publicString getQq() {

returnqq;

}

publicStudent() {

}

publicStudent(String n,String a,String q) {

name=n;

adress=a;

qq=q;

}

}

准备---连接数据库:

packageutil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classShujuku {public staticConnection conn(){

String url="jdbc:sqlserver://localhost:1433;DatabaseName=xinxi";//填写你的数据库名

String userName="sa";//填写你的用户名,我的是sa

String userPwd="********";//填写你的密码

Connection connection=null;try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

System.out.println("加载驱动成功!");

}catch(Exception e){

e.printStackTrace();

System.out.println("加载驱动失败!");

}try{

connection=DriverManager.getConnection(url,userName,userPwd);

System.out.println("连接数据库成功!");

}catch(Exception e){

e.printStackTrace();

System.out.print("SQL Server连接失败!");

}returnconnection;

}public static void close (Statement state, Connection conn) {//关闭

if (state != null) {try{

state.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (conn != null) {try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}public static void close (ResultSet rs, Statement state, Connection conn) {//关闭

if (rs != null) {try{

rs.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (state != null) {try{

state.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (conn != null) {try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

1.servlet(首先StuService ts=new StuService();//新建service实体对象,以便后来调用service中add()方法)

packageservlet;import service.*;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;import entity.*;

@WebServlet("/StuServlet")public class StuServlet extendsHttpServlet {private static final long serialVersionUID = 1L;protected void service(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//TODO Auto-generated method stub

request.setCharacterEncoding("utf-8");

String method= request.getParameter("method");if(method.equals("add"))

{

add(request,response);

}

}

StuService ts=newStuService();private void add(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {

req.setCharacterEncoding("utf-8");

String name= req.getParameter("name");//从jsp中获取参数name

String adress=req.getParameter("adress");

String qq=req.getParameter("qq");

Student stu=new Student(name,adress,qq);//新建

int k=ts.add(stu);if(k==2) {

req.setAttribute("message", "添加成功");//setAttribute方法用于将内容保存在对象中,传到add.jsp中

req.getRequestDispatcher("add.jsp").forward(req,resp);//getRequestDispatcher方法用于进入下一个页面

}if(k==0)

{

req.setAttribute("message", "重复,请重新录入");

req.getRequestDispatcher("add.jsp").forward(req,resp);

}if(k==1)

{

req.setAttribute("message", "数据库添加失败");

req.getRequestDispatcher("add.jsp").forward(req,resp);

}

}

}

①创建方法add(),Servlet从jsp中获取参数,新建实体对象Student stu=new Student(name,adress,qq);

②调用service层,检验添加的准确性

StuService ts=new StuService();//新建service对象

if(ts.add(stu)){

//如果service对象ts的Booleanadd(stu)方法返回真值true,页面要显示添加成功

//req.setAttribute("message", "添加成功");将"添加成功"内容保存在req对象参数message中,传递给add.jsp

//req.getRequestDispatcher("add.jsp").forward(req,resp);进入下一个界面(这里是add.jsp)

}

else{

//收到返回值为false,添加失败

//将 "重复,请重新录入"内容保存在req对象参数message中,传递给add.jsp

//进入下一个界面(这里是add.jsp)

}

2. Service(新建dao实体对象,后面要调用dao层方法)

packageservice;importdao.StuDao;importentity.Student;public classStuService {

StuDao sdao=newStuDao();public intadd(Student stu) {int f=0;if(!sdao.rename(stu.getName())) {

f=1;if(sdao.add(stu))

f=2;

}returnf;

}

}

①创建 add(Student stu){}方法,检验添加的准确性

②调用dao层后台程序方法rename()检验是否重名

if(!sdao.rename(stu.getName())) {//如果没有重复

sdao.add(stu);//添加

f=true;//返回真值

}

e197c89885a7753e50ed8e6274b5f6e2.png

如图,直接在提示错误中点击创建方法即可

3. Dao(后台程序)

在这里编写所需的底层程序:

rename()//验证名字是否唯一

Add()//添加

public classStuDao {public booleanrename(String name) {//检验名字是否重复

boolean f=false;

String sql="select name from stud where name='"+name+"'";//数据库语句,查询界面输入和表stud中name是否重复

Connection conn = Shujuku.conn();//创建连接

Statement state = null;//建立Statement对象,执行静态SQL语句

ResultSet rs = null;//ResultSet对象 是查询数据库时的返回对象,读取返回结果集

try{

state=conn.createStatement();

rs=state.executeQuery(sql);while (rs.next()) {//不重复,返回true

f = true;

}

}catch(SQLException e) {

e.printStackTrace();

}finally{

Shujuku.close(rs, state, conn);

}returnf;

}public booleanadd(Student stu) {//添加

String sql = "insert into stud(name,adress,qq) values('" +stu.getName() + "','" + stu.getAdress() + "','" + stu.getQq() + "')";

Connection conn=Shujuku.conn();

Statement state= null;boolean f = false;int a=0;try{

state=conn.createStatement();

a=state.executeUpdate(sql);//添加

} catch(Exception e) {

e.printStackTrace();

}finally{

Shujuku.close(state, conn);

}if (a > 0) {

f= true;

}returnf;

}

}

4. Add.jsp

编写前端页面;

应用javascript验证客户端表单合法性。

Insert title here

Objectmessage=request.getAttribute("message");if(message!=null &&!"".equals(message)){%>

alert("");

信息录入

返回主页

姓名
联系方式
地址

保   存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值