jsp MVC学习笔记

时间:2022-09-20 19:10:30

Model层:

四个包:

com.maker.bean存放数据库里面的字段信息。

package com.maker.bean;

public class User
{ private String username;
private String password;
private int id;
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;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} }

在编写get set方法可以编写完数据库字段之后生成。

com.maker.util包:

package com.maker.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class DBUtil
{
public Connection getConnection() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
{
String Url="jdbc:mysql://localhost/jsptest";
String Driver="com.mysql.jdbc.Driver";
String username="root";
String password="w111206";
Class.forName(Driver).newInstance();
Connection conn = DriverManager.getConnection(Url,username,password);
return conn; }
public void closeConnection(Connection conn)
{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

里面包含数据库连接打开,关闭代码

com.maker.dao包:

package com.maker.dao;
import java.sql.*;
import java.util.ArrayList; import com.maker.bean.User;
import com.maker.util.DBUtil;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.ResultSet;
import com.mysql.jdbc.Statement; public class UserData
{
public void Del(int Id)
{
String sql="delete from user where id="+Id;
DBUtil util=new DBUtil();
Connection conn=null;
try {
conn=util.getConnection();
PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql); pstmt.executeUpdate(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
util.closeConnection(conn);
} }
public void save(User us)
{
String sql="insert into User (username,password) values(?,?)";
DBUtil util=new DBUtil();
Connection conn = null;
try {
conn = util.getConnection();
PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, us.getUsername());
pstmt.setString(2,us.getPassword());
pstmt.executeUpdate(); } catch (Exception e) { e.printStackTrace();
}
finally{
util.closeConnection(conn);
}
}
public ArrayList List()
{
ArrayList list=new ArrayList();
String sql="select * from user";
DBUtil util=new DBUtil();
Connection conn = null;
try {
conn = util.getConnection();
java.sql.Statement stmt=conn.createStatement();
java.sql.ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
int id=rs.getInt(1);
String username=rs.getString(2);
String password=rs.getString(3);
User us=new User();
us.setId(id);
us.setPassword(password);
us.setUsername(username);
list.add(us);
} } catch (Exception e) { e.printStackTrace();
}
finally{
util.closeConnection(conn);
}
return list;
} }

里面是数据库操作代码

Control控制层:

com.maker.Servlet包

package com.maker.Sevlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.maker.bean.User;
import com.maker.dao.UserData; public class UpdateServlet extends HttpServlet { /**
* Constructor of the object.
*/
public UpdateServlet() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String action=request.getParameter("action");
int Id=Integer.parseInt(action); UserData da=new UserData();
da.Del(Id);
ArrayList<User> list=da.List();
request.setAttribute("UserList",list); request.getRequestDispatcher("/index.jsp").forward(request, response);
} /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String action=request.getParameter("action");
int Id=Integer.parseInt(action); UserData da=new UserData();
da.Del(Id);
ArrayList<User> list=da.List();
request.setAttribute("UserList",list);
request.setAttribute("Id",Id); request.getRequestDispatcher("/index.jsp").forward(request, response);
} /**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
} }

里面是Servlet,如果测试里面数据传值等是否正确,想输出一个数值,可采用

PrintWriter out=response.getWriter();
out.println("<script>alert('"+name+")<script>");
也可以向jsp页面传值,然后在jsp页面显示。
View显示层:
<%@page import="com.maker.bean.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
<table>
<%
@SuppressWarnings("unchecked")
ArrayList<User> arr=(ArrayList<User>)request.getAttribute("UserList");
for(User us:arr)
{
out.println("<tr>");
out.println("<td>"+us.getUsername()+"</td>");
out.println("<td>"+us.getPassword()+"</td>");
out.println("<td><a href='servlet/UpdateServlet?action="+us.getId()+"'>编辑</a></td>");
out.println("</tr>");
}
%>
<br/>
<br/>
</table>
<table>
<c:forEach var="fuwa" items="${UserList}" >
<tr>
<td>
 <c:out value="${fuwa.id}" />
</td>
<td><td><a href="servlet/UpdateServlet?action=${fuwa.id}">编辑</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>

jsp MVC学习笔记的更多相关文章

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. Spring MVC 学习笔记12 —— SpringMVC&plus;Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  3. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  4. Spring MVC 学习笔记10 —— 实现简单的用户管理(4&period;3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  5. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  6. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  7. Spring MVC 学习笔记1 - First Helloworld by Eclipse【&amp&semi; - java web 开发Tips集锦】

    Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...

  8. MVC学习笔记索引帖

    [MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习 ...

  9. ASP&period;NET MVC学习笔记-----Filter2

    ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...

随机推荐

  1. SAP HR宏 rp-provide-from-last

    运行se11 Database table: 输入 TRMAC 点击display 查看其内容:第14个按钮(ctrl + shift +F10) 再Name 输入:rp-provide-from-l ...

  2. Spark读取HDFS文件,文件格式为GB2312,转换为UTF-8

    package iie.udps.example.operator.spark; import scala.Tuple2; import org.apache.hadoop.conf.Configur ...

  3. bzoj 1761&colon; &lbrack;Baltic2009&rsqb;beetle 区间dp

    1761: [Baltic2009]beetle Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 255  Solved: 92[Submit][Statu ...

  4. 基于visual Studio2013解决C语言竞赛题之0414特殊平方数

       题目 解决代码及点评 这道题依旧是通过for循环,遍历所有四位数,然后根据题目要求判断数的性质即可 /**************************************** ...

  5. Android Development HandBook-Android Studio 特别篇

    开发准备中http://www.cnblogs.com/dev2007/p/4059829.html 主要介绍了基础环境的搭建,开发工具主要是Eclipse,由于Android Studio使用越来越 ...

  6. php头像上传预览

    php头像上传带预览: 说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过fo ...

  7. 页面中dropDownListt的二级关联

    当下拉框选项不多,而且可以写死的情况下,用js在页面写可能更方便. 我的html代码如下,两个关联是下拉框:配件类型.子类型. <div class="col-md-3 col-sm- ...

  8. 通过arcmap发布缓存服务,无法选择自定义方案

    出现该问题是因为缓存目录有该缓存信息,清楚掉之后就可以选择自定义方案了

  9. vim设置Tab键和显示行号

    vim ~/.vimrc set nu 这样设置方便写python代码.

  10. 对于链表中tada的绝对值相等的点,仅保留第一次出现的结点而删除其余绝对值相等的点

    算法的核心思想是用空间换时间,使用辅助数组记录链表中已出现的数值  从而只需对链表进行一趟扫描 typedef struct node { int data; struct node* next; } ...