javaee之mvc设计模式设计访问数据库查找增加

mvc三块:JavaBean servlet jsp其中jsp页面使用户可以输入信息如单号输出信息如显示数据库内信息。jsp通过servlet去调用Javabean访问数据库。servlet起到调用,转换页面结果而javabean访问数据库(以上为我自己对本次实验的理解。不够准确但是比较简单)
然后看一下本次实验具体涉及哪些文件:
在这里插入图片描述两个javabean:
1.其中musicdao专门用来访问数据库这里书写了两个作用。一个是查找一个是插入代码

package com. beans;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.util.ArrayList;
import com.beans.musicBean;
public class musicDAO{
private static InitialContext context= null;
private DataSource dataSource = null;
public musicDAO(){
	try{
		if(context == null){
			context = new InitialContext();
		}
		dataSource = (DataSource)context.lookup("java:comp/env/jdbc/sample");
	}catch(NamingException e2) {
	}
}

	//查询音乐信息
public musicBean searchMusic(String musicid){
	Connection conn = null;
	PreparedStatement pstmt = null ; 
	ResultSet rst = null;
	musicBean music = new musicBean();
	try{
		conn = dataSource.getConnection(); 
		pstmt = conn. prepareStatement( "SELECT * FROM musicarray WHERE musicid=?");
		pstmt.setString(1, musicid);
		rst = pstmt.executeQuery() ;
		if(rst.next()){
			music.setMusicid(rst. getString( "musicid"));
			music.setName(rst . getString("name"));
			music.setSinger(rst. getString("singer"));
			return music;
		}else{
			return null;
		}
	}catch(SQLException se){
		return null ;
	}finally{
		try{
			conn. close();
		}catch(SQLException se){
		}
	}
}
	//插入一条音乐记录
public boolean insertMusic (musicBean music){
	Connection conn = null;
	PreparedStatement pstmt = null;
	try{
		conn = dataSource.getConnection() ;
		pstmt = conn.prepareStatement("INSERT INTO musicarray VALUES(?,?,?)");
		pstmt.setString(1, music. getMusicid());
		pstmt.setString(2, music. getName());
		pstmt.setString(3, music. getSinger()); 
		pstmt.executeUpdate();
		pstmt.close();
		return true ;
	}catch(SQLException se){
		return false;
	}finally{
		try{
			conn. close();
		}catch(SQLException se){ }
	}
}
}

核心代码:
visit数据库

Context context=new InitialContext();
	DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/sample");
	Connection conn=ds.getConnection();

查找语句执行

pstmt = conn. prepareStatement( "SELECT * FROM musicarray WHERE musicid=?");
		pstmt.setString(1, musicid);//获取页面文字
		rst = pstmt.executeQuery() ;

返回信息在rst包裹
插入语句执行

pstmt = conn.prepareStatement("INSERT INTO musicarray VALUES(?,?,?)");
		pstmt.setString(1, music. getMusicid());
		pstmt.setString(2, music. getName());
		pstmt.setString(3, music. getSinger()); 
		pstmt.executeUpdate();

2.musicbean

是一个对象。数据中一条信息包裹musicbean里。
代码:

package com.beans;
import java. io.*;

public class musicBean implements Serializable{
      private String musicid = null;
      private String name = null;
      private String singer = null;
      public musicBean(){}
      public musicBean(String musicid, String name,String singer){
    	  this.musicid = musicid;
    	  this.name = name;
    	  this.singer = singer;
      }
      public String getMusicid(){return this.musicid;}
      public String getName(){return name;}
      public String getSinger() { return this.singer;}
      public void setMusicid(String musicid){ this.musicid=musicid; }
      public void setName(String name){this.name=name; }
      public  void setSinger(String singer){ this.singer = singer;}
}

没什么核心代码。
servlet:
1.musicinsertservlet

package com.control;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.beans.musicBean;
import com.beans.musicDAO;

public class musicInsertServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public musicInsertServlet() {
        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
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		String message=null;
		musicBean music=new musicBean(
				request.getParameter("musicid"),
				request.getParameter("name"),
				request.getParameter("singer")
				);
		musicDAO musicdao=new musicDAO();
		boolean success=musicdao.insertMusic(music);
		if(success) {
			message="成功插入一条记录!";
		}else {
			message="插入记录错误!";
		}
		request.setAttribute("result", message);
		RequestDispatcher view=request.getRequestDispatcher("/musicInsert.jsp");
		view.forward(request, response);
	}

}

获取信息

musicBean music=new musicBean(
				request.getParameter("musicid"),
				request.getParameter("name"),
				request.getParameter("singer")
				);

执行插入

musicDAO musicdao=new musicDAO();
		boolean success=musicdao.insertMusic(music);

跳转页面

request.setAttribute("result", message);//通过rusult传输信息。可以在musicinsert页面输出message
		RequestDispatcher view=request.getRequestDispatcher("/musicInsert.jsp");
		view.forward(request, response);

关于setattribute
https://jingyan.baidu.com/article/4d58d5410ab9ea9dd5e9c047.html
2。musicqueryservlet

package com.control;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.beans.musicBean;
import com.beans.musicDAO;

public class musicQueryServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public musicQueryServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String musicid=request.getParameter("musicid");//获取
		musicDAO musicdao=new musicDAO();//使用beans连接数据库
		musicBean music=musicdao.searchMusic(musicid);
		
		if(music!=null) {
			request.setAttribute("music", music);//
			RequestDispatcher view=request.getRequestDispatcher("/display.jsp");//跳转页面
			view.forward(request, response);
		}else {
			RequestDispatcher view=request.getRequestDispatcher("/errorPage.jsp");
			view.forward(request, response);
		}
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}

}

获取信息

String musicid=request.getParameter("musicid");//获取

调用找寻

musicDAO musicdao=new musicDAO();//使用beans连接数据库
		musicBean music=musicdao.searchMusic(musicid);

跳转页面并把music(musicbean)这个传给下给页面展示。

request.setAttribute("music", music);
			RequestDispatcher view=request.getRequestDispatcher("/display.jsp");//跳转页面
			view.forward(request, response);

这里接受的代码还没搞清楚不知道是怎么接受的
错误跳转页面

RequestDispatcher view=request.getRequestDispatcher("/errorPage.jsp");
			view.forward(request, response);

3.jsp
这个没什么特别难的。
1.display

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <jsp:useBean id="music" class="com.beans.musicBean" scope="request"/>
    <jsp:setProperty name="music" property="musicid" value="lisi"/>
<!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>Music Display</title>
</head>
<body>
	id号:<jsp:getProperty property="musicid" name="music"/>
	歌曲名:<jsp:getProperty property="name" name="music"/>
	歌手:<jsp:getProperty property="singer" name="music"/>
</body>
</html>

核心代码:
接受serlvlet然后下列代码进行输出property是对象,name是它的属性。

<jsp:useBean id="music" class="com.beans.musicBean" scope="request"/>
<jsp:setProperty name="music" property="musicid" value="lisi"/>
<jsp:getProperty property="musicid" name="music"/>

2.errorpage

<%@ page contentType="text/html;charset=UTF-8"%>
<!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>Error</title>
</head>
<body>
	对不起,您查的歌曲不存在!	
</body>
</html>

3.musicinsert

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>Music Insert</title>
</head>
<body>
	<h3>请输入一个歌曲信息:</h3>
	<%if(request.getAttribute("result")!=null)
		out.println(request.getAttribute("result"));
	%>
	<form action="musicinsert.do" method="post">
		<table>
			<tr><td>id号</td><td><input type="text" name="musicid"></td></tr>
			<tr><td>歌曲名</td><td><input type="text" name="name"></td></tr>
			<tr><td>歌手</td><td><input type="text" name="singer"></td></tr>
			<tr><td><input type="submit" value="提交"></td>
				<td><input type="reset" value="重置"></td>
				</tr>
		</table>
	</form>
</body>
</html>

正常的接收信息

<%if(request.getAttribute("result")!=null)
		out.println(request.getAttribute("result"));
	%>

4musicicquery

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>Music Query</title>
</head>
<body>
	请输入一个书号:<br>
	<form action="musicquery.do" method="post">
		<input type="text" name="musicid"><br>
		<input type="submit" value="提交">
	</form>
</body>
</html>

然后重视一下最后两个form的格式

<form action="musicinsert.do" method="post">
<form action="musicquery.do" method="post">

具体知识点不清楚到时候学下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
好的,我来解答你的问题。 首先,MVC模式是一种常用的软件设计模式,其中M代表Model(模型),V代表View(视图),C代表Controller(控制器)。在这种模式下,模型负责处理数据,视图负责展示数据,控制器负责协调模型和视图之间的交互。 现在,我们来看一下如何使用MVC模式实现ajax根据数据库实现登录。 1. 首先,在Model中,我们需要定义一个User类,用于封装用户的信息。例如: ```java public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 2. 在Controller中,我们需要定义一个LoginController类,用于处理登录请求。例如: ```java public class LoginController { public void login(String username, String password, HttpServletResponse response) { // 从数据库中查询用户信息 User user = userDao.getUserByUsername(username); // 验证用户名和密码是否正确 if (user != null && user.getPassword().equals(password)) { // 登录成功 response.getWriter().write("success"); } else { // 登录失败 response.getWriter().write("fail"); } } } ``` 在上面的代码中,我们首先从数据库中查询用户信息,然后验证用户名和密码是否正确。如果验证成功,则返回"success",否则返回"fail"。 3. 在View中,我们需要定义一个login.jsp页面,用于展示登录界面,并且使用ajax发送登录请求。例如: ```html <!DOCTYPE html> <html> <head> <title>登录页面</title> <script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $(function(){ $("#loginBtn").click(function(){ $.ajax({ url: "login.do", type: "post", data: { username: $("#username").val(), password: $("#password").val() }, success: function(result){ if (result == "success") { alert("登录成功!"); } else { alert("登录失败!"); } }, error: function(){ alert("请求失败!"); } }); }); }); </script> </head> <body> <h1>登录页面</h1> <form> <p> <label>用户名:</label> <input type="text" id="username" name="username"/> </p> <p> <label>密码:</label> <input type="password" id="password" name="password"/> </p> <p> <button type="button" id="loginBtn">登录</button> </p> </form> </body> </html> ``` 在上面的代码中,我们首先引入了jQuery库,然后定义了一个点击登录按钮时发送ajax请求的事件。在ajax请求中,我们指定了请求的URL地址、请求的类型、请求的数据等信息。当请求成功时,会根据返回的结果进行相应的处理。 综上所述,以上就是使用MVC模式实现ajax根据数据库实现登录的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值