您没有将某些内容传递给servlet.你只需让servlet访问一些东西.

您应该摆脱main()方法并将数据库交互代码移动到DAO类中.我还给模型类(带有时区和位置)一个以大写字母开头的更敏感的名称.总而言之,您应该更新代码,使其看起来如下所示:

模型类,区域(只要它有意义,任意你想要的名称),它应该只代表一个实体:

public class Area {

private String location;

private String timezone;

public String getLocation() { return location; }

public String getTimezone() { return timezone; }

public void setLocation(String location) { this.location = location; }

public void setTimezone(String timezone) { this.timezone = timezone; }

}

基本连接管理器类,数据库,这里只加载驱动程序一次,并为连接提供一个getter:

public class Database {

private String url;

private String username;

private String password;

public Database(String driver, String url, String username, String password) {

try {

Class.forName(driver);

} catch (ClassNotFoundException e) {

throw new RuntimeException("Driver class is missing in classpath", e);

}

this.url = url;

this.username = username;

this.password = password;

}

public Connection getConnection() {

return DriverManager.getConnection(url, username, password);

}

}

DAO类,AreaDAO,这里放置所有数据库交互方法:

public class AreaDAO {

private Database database;

public AreaDAO(Database database) {

this.database = database;

}

public List list() throws SQLException {

Connection connection = null;

PreparedStatement statement = null;

ResultSet resultSet = null;

List areas = new ArrayList();

try {

connection = database.getConnection();

statement = connection.prepareStatement("SELECT location, timezone FROM userclient");

resultSet = statement.executeQuery();

while (resultSet.next()) {

Area area = new Area();

area.setLocation(resultSet.getString("location"));

area.setTimezone(resultSet.getString("timezone"));

areas.add(area);

}

} finally {

if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {}

if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}

if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}

}

return areas;

}

}

最后,在servlet中初始化DAO一次并获取HTTP方法中的列表:

public class AreaServlet extends HttpServlet {

private AreaDAO areaDAO;

public void init() throws ServletException {

String driver = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://localhost:3306/dbname";

String username = "user";

String password = "pass";

Database database = new Database(driver, url, username, password);

this.areaDAO = new AreaDAO(database);

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {

List areas = areaDAO.list();

request.setAttribute("areas", areas);

request.getRequestDispatcher("/WEB-INF/areas.jsp").forward(request, response);

} catch (SQLException e) {

throw new ServletException("Cannot retrieve areas", e);

}

}

}

将此servlet映射到web.xml中的/ areas区域的url-pattern上,以便您可以在http://example.com/contextname/areas之前调用它

/WEB-INF/areas.jsp看起来像这样,假设您要显示表中的区域:

${area.location} ${area.timezone}

也可以看看:

java 传递bean_Java:如何将值从类/ bean传递给servlet相关推荐

  1. python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?

    如何恢复传递给multiprocessing.Process的函数的返回值? 在下面的示例代码中,我想恢复函数的返回值worker.我该怎么做呢?这个值存储在哪里? 示例代码: import mult ...

  2. Java静态变量注入配置值,工具类使用@Value将信息注入到静态变量中

    在spring工程中,我们经常需要使用到配置文件的一些信息,在每个类中定义,可能导致这些信息变得零散.spring给我们提供了一个注解@Value(),使我们可以注入配置文件中的数据. bootstr ...

  3. java 创建bean_java – 使用spring按需创建bean

    我想在工厂模式启动后创建一些 spring bean.例如,每隔一段时间我就有一些工作要做,我需要创建一个任务bean(可能对其他单例spring bean有依赖)并执行它. 可能有多个工作要同时执行 ...

  4. 将ajax的值传给控制器,ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller(示例代码)

    我需要将一个值从前端传递给控制器​​,我很难让它传递值. 阿贾克斯/ jQuery的 //unlock user account $("#results").on('click', ...

  5. python装饰器传递参数_如何将额外的参数传递给Python装饰器?

    因为你像一个函数一样调用装饰器,它需要返回另一个函数,它是实际的装饰器: def my_decorator(param): def actual_decorator(func): print(&quo ...

  6. 【Java代码】反射机制处理传递给mapper文件的非Map类型参数对象(指定属性为空则设置默认值)

    1. why 为什么要拦截传递给 mapper 文件的参数对象呢?因为要对指定属性设置默认值.如何拦截传递给 mapper 文件的参数对象可以参考<使用(org.apache.ibatis.pl ...

  7. php传递数据给jquery,将值从php传递给jquery

    我需要一些帮助,我想知道如何将一个值从PHP变量传递给jquery脚本? 我正在做的是打开一个模式窗口,从mysql浏览器创建的元素列表中,所以我需要传递一个变量值的锚点. 这是我的代码: $quer ...

  8. java值的传递_Java 8可选–基于值的类使用指南

    java值的传递 In this article, we will go through the use of Java 8 Optional class and understand what a ...

  9. 【Java】探究Java方法的参数传递是值传递还是引用传递

    测试思路 每个更改形参的方法,返回值都是void,不同方法的参数设置不同类型. 注意在方法内测地址的时候在改之前测一下,才能看出传入参数是不是传了地址.(注意反正OS的内存地址是虚拟的,JVM中的也是 ...

最新文章

  1. 敏捷开发实践总结(二):关于测试
  2. 第十三届计算机语言学大会,第十三届全国语音学学术会议(PCC 2018) 会议通知第3号...
  3. LeetCode --- Validate Binary Search Tree
  4. 传参方法:sharedApplication, NSUserDefaults, protocol 和 delegate(实例)
  5. 女性最容易动心的21种时刻
  6. 自家主机建云服务器_如何创建一台Linux云主机?
  7. python项目结构图_python 项目目录结构设置
  8. 深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读
  9. php 论坛回复引用功能,PHPWind商业版论坛功能介绍
  10. vue项目在浏览器地址栏设置图标
  11. crmeb多商户1.7.3
  12. css 设置冻结表格头,固定/冻结行表头、列表头的做法
  13. java做一个客房管理系统定制_java实现客房管理系统
  14. python中set什么意思_set在python里是什么意思
  15. HTML(常用标签与超链接)的案例
  16. 读硕士和读博士有什么区别?
  17. 15.JavaScript——34——JavaScript高级
  18. untrusted Developer You can allow using these apps in settings you can allow using these apps i
  19. 查看SQL Server的版本
  20. web应用测试的具体流程(等保测评相关)

热门文章

  1. std::call_once写单列模式
  2. 移动端实现文字轮播_移动端轮播图实现
  3. 画流程图activiti流程图_干货!小白也能一天画100张高逼格流程图
  4. mysql 天数减1_mysql 日期加减天数
  5. AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc
  6. 如何访问静态成员php,php – 如何访问类的静态成员?
  7. 本科计算机专业在车辆段,机电与轨道车辆工程系2021届毕业生参加成都铁路局车辆段及电务段认知实习...
  8. Windows平台下如何实现Unity3D下的RTMP推送
  9. c++ ea 代码 生成_EA公司教AI制作游戏角色,行动流畅自然,全程无需人类介入
  10. 如何使用websocket实现前后端通信