一、javaweb  数据访问流程?

1.浏览器 http 访问服务器 找到 servlet(HttpServeltDemo.java文件)

2.servle 通过dao 访问数据库 数据库将数据返回给servlet

3.servlet找寻指定的JSP文件 将student数据传送给JSP

4.JSP获得数据,展示在网页上。将数据返回给servlet

5.servlet将数据 传送给浏览器。

二、将数据库中的student 展示在http页面 。代码体现 ?

  装备工作建立四个包。

1.dao

package com.aaa.dao;

import com.aaa.entity.Student;

import java.util.List;
import java.util.Map; public interface IStudentDAO {
boolean add(Student s); boolean delete(int id);
boolean update(Student s); Map<String ,Object> getStudent(int id); List<Map<String,Object>> getAllStudent();
}

dao.Impl  实现一个 供测试使用。

package com.aaa.dao.Impl;

import com.aaa.dao.IStudentDAO;
import com.aaa.entity.Student;
import com.aaa.util.DBUtil; import java.util.List;
import java.util.Map; public class StudentDAOImpl implements IStudentDAO {
@Override
public boolean add(Student s) {
return false;
} @Override
public boolean delete(int id) {
return false;
} @Override
public boolean update(Student s) {
return false;
} @Override
public Map<String, Object> getStudent(int id) {
return null;
} @Override
public List<Map<String, Object>> getAllStudent() {
String sql="select * from student ";
return DBUtil.executeQuery(sql); }
}

2.entity 实体类

package com.aaa.entity;

public class Student {
private int id;
private String name;
private int age; public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
} public Student() {
super();
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}

3.封装工具类

package com.aaa.util;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class DBUtil {
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnetion(){
try {
return DriverManager.getConnection("jdbc:mysql://localhost:3306/qy66?characterEnconding=UTF-8","root","root");
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static boolean executeUpdate(String sql,Object... args){
Connection con=null;
PreparedStatement ps=null; try {
con=DBUtil.getConnetion();
ps=con.prepareStatement(sql); for (int i = 0; i <args.length ; i++) {
ps.setObject(i+1,args[i]);
}
int i=ps.executeUpdate();
return i>0; } catch (SQLException e) {
e.printStackTrace();
}finally {
close(con,ps,null);
}
return false;
} public static List<Map<String, Object>> executeQuery(String sql, Object... args){
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null; try {
con=getConnetion();
ps=con.prepareStatement(sql); for (int i = 0; i <args.length ; i++) {
ps.setObject(i+1,args[i]);
}
rs=ps.executeQuery(); List<Map<String,Object>>list=new ArrayList<>(); int count=rs.getMetaData().getColumnCount(); while (rs.next()){ Map<String,Object>map= new HashMap<>(); for (int i = 0; i < count; i++) {
String name = rs.getMetaData().getColumnLabel(i + 1);
map.put(name,rs.getObject(name));
}
list.add(map);
}
return list; } catch (SQLException e) {
e.printStackTrace();
}finally {
close(con,ps,rs);
}
return null;
} private static void close(Connection con, PreparedStatement ps, ResultSet rs) {
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} }

4.servlet 测试。

package com.aaa.servlet;

import com.aaa.dao.IStudentDAO;
import com.aaa.dao.Impl.StudentDAOImpl; 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 java.io.IOException;
import java.util.List;
import java.util.Map;
@WebServlet("/666") //虚拟路径 不用再配置xml文件 快捷
public class HttpServletDemo extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.获取数据库中的数据
IStudentDAO dao=new StudentDAOImpl();
List<Map<String, Object>> list = dao.getAllStudent(); /*
2.请求共享数据 就是需要servlet展示什么数据
req.setattribute("01",list) 展示list数据 名字叫01【关键字的作用】 因为这种文件可能
会有很多 方便servlet找的到 我们所需要的JSP文件
*/
req.setAttribute("01",list); //3.请求转发到某个JSP 3.1 新建JSP文件 day01.jsp
req.getRequestDispatcher("day01.jsp").forward(req,resp);
}
}

5.JSP 代码部分?

<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/4/15
Time: 22:57
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html>
<head>
<title>Title</title>
</head>
<body>
<table border="1" cellspacing="0">
<tr>
<th>id</th>
<th>name</th>
<th>age</th>
</tr>
<!--1. 在JSP中获取数据-->
<!--6.a:注意JSP写在 web目录下 b:lib目录建立在 WEB-INF下-->
<% List<Map<String,Object>>list=(List<Map<String,Object>>)request.getAttribute("01");%> <!-- 2.强制装换--> <% for (Map map:list) { %> <!--3. java 代码在JSP中书写方式 for循环 获得每一列中的数据 -->
<tr>
<td> <%=map.get("id")%> </td> <!-- 5.'='等于号 是将java代码显示在 网页上-->
<td> <%=map.get("name")%>> </td>
<td> <%=map.get("age")%>> </td>
</tr> <% } %> <!--4. for循环的结尾-->
</table>
</body>
</html>

  

Javaweb项目 利用JSP响应浏览器的更多相关文章

  1. 如何开发简单的javaweb项目,jsp+javabean+servlet

    一.相关的软件下载和环境配置 1.下载并配置JDK. 2.下载eclipse. 3.下载并配置apache-tomcat(服务器). 4.下载MySQL(数据库). 5.下载Navicat for M ...

  2. javaweb项目中jsp的from表单提交action内容与web.xml的servlet-mapping对应

    login.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...

  3. JAVAWEB项目报"xxx响应头缺失“漏洞处理方案

    新增一个拦截器,在拦截器doFilter()方法增加以下代码 public void doFilter(ServletRequest request, ServletResponse response ...

  4. 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题

    1.服务器(Server)响应,浏览器(Brower)请求: 对于B/S的软件,数据的传递体现在,用户利用浏览器请求,以获得服务器响应.在JavaWeb项目中,大致包含.java文件的数据处理模块,和 ...

  5. 【转载】java前后端 动静分离,JavaWeb项目为什么我们要放弃jsp?

    原文:http://blog.csdn.net/piantoutongyang/article/details/50878214 今天看到两篇文章,讲解 为什么web开发启用jsp,确实挺有道理,整理 ...

  6. 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome

    使用Eclipse开发Javaweb项目时,在Eclipse中显示页面不是很好,那么如何让它自动打开外置浏览器呢?操作如下

  7. JavaWeb项目在浏览器点击几次就阻塞了

    问题描述 在学习JavaWeb项目时,通过IDE启动项目后,在浏览器点击几次页面中的链接就阻塞了,浏览器一直转圈圈无法加载,后台日志也没有输出. 第一次遇见这种情况,没有日志完全无法分析到底是什么问题 ...

  8. [JavaWeb]利用JSP的编码特性制作免杀后门

    利用JSP的编码特性制作免杀后门 这里是借鉴了Y4stacker师傅的thinkings 待解决的问题 JSP解析 JSP"乱码"为什么还能被识别 "乱码"的J ...

  9. 利用Jenkins实现JavaWeb项目的自动化部署

    修改代码,打包,上传,重启... 大把的时间花费在这些重复无味的工作上.笔者与当前主流的价值观保持一致:我们应该把时间花费在更有意义的事情上.我们可以尝试借助一些工具,让这些重复机械的工作交给计算机去 ...

随机推荐

  1. OO Homework One Notes

    系数/指数 过大 溢出(True) eg. - +999999999454554999999 * x ^ -85858554545454545548585858858 x前存在两个符号,与x有空格分离 ...

  2. C# 利用反射动态加载dll

    笔者遇到的一个问题,dll文件在客户端可以加载成功,在web端引用程序报错.解决方法:利用反射动态加载dll 头部引用加: using System.Reflection; 主要代码: Assembl ...

  3. asp.net DES加密解密

    数据加密标准DES加密算法是一种对称加密算法,DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小.这是一个迭代的分组密码,使用称为 Feistel 的技术,其中 ...

  4. 零基础学Python--------第5章 字符串及正则表达式

    第5章 字符串及正则表达式 5.1 字符串常用操作 在Python开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理,如拼接字符串.截取字符串.格式化字符串等.下面将对Python中常用的 ...

  5. 大型网站架构演进(6)使用NoSQL和搜索引擎

    随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系型数据库技术(即NoSQL)和非数据库查询技术如搜索引擎.NoSQL数据库一般使用MongoDb,搜索引擎一般使用El ...

  6. 中间件(3)NoSQL

    NoSQL最常见的解释是non-relational,或者not only SQL,从字段意思上就可以看出,它是指非关系型数据库的统称. NoSQL诞生的背景 随着大型网站分布式架构的发展,使用传统关 ...

  7. vue中computed计算属性与methods对象中的this指针

    this 指针问题 methods与computed中的this指针 应该指向的是它们自己,可是为什么this指针却可以访问data对象中的成员呢? 因为new Vue对象实例化后data中的成员和c ...

  8. C# 生成随机索引列表

    /// <summary> /// 生成随机索引列表 /// </summary> /// <param name="maxNumber">&l ...

  9. Apex 中文件夹相关的单元测试

    Salesforce 中的文件夹 在 Salesforce 中,我们可以建立各种文档.报表.仪表板.电子邮件模板等.它们都被保存在相应的文件夹中. Salesforce 的后端将这些文件夹保存为 Fo ...

  10. Linux系统下 MySQL 安装 指南(5.7和8.0 版本)

    一. 准备工作 1 删除本地centos7中的mariadb: 查看系统中是否已安装 mariadb 服务: rpm -qa | grep mariadb 或 yum list installed | ...