java 传递bean_Java:如何将值从类/ bean传递给servlet
您没有将某些内容传递给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相关推荐
- python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
如何恢复传递给multiprocessing.Process的函数的返回值? 在下面的示例代码中,我想恢复函数的返回值worker.我该怎么做呢?这个值存储在哪里? 示例代码: import mult ...
- Java静态变量注入配置值,工具类使用@Value将信息注入到静态变量中
在spring工程中,我们经常需要使用到配置文件的一些信息,在每个类中定义,可能导致这些信息变得零散.spring给我们提供了一个注解@Value(),使我们可以注入配置文件中的数据. bootstr ...
- java 创建bean_java – 使用spring按需创建bean
我想在工厂模式启动后创建一些 spring bean.例如,每隔一段时间我就有一些工作要做,我需要创建一个任务bean(可能对其他单例spring bean有依赖)并执行它. 可能有多个工作要同时执行 ...
- 将ajax的值传给控制器,ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller(示例代码)
我需要将一个值从前端传递给控制器,我很难让它传递值. 阿贾克斯/ jQuery的 //unlock user account $("#results").on('click', ...
- python装饰器传递参数_如何将额外的参数传递给Python装饰器?
因为你像一个函数一样调用装饰器,它需要返回另一个函数,它是实际的装饰器: def my_decorator(param): def actual_decorator(func): print(&quo ...
- 【Java代码】反射机制处理传递给mapper文件的非Map类型参数对象(指定属性为空则设置默认值)
1. why 为什么要拦截传递给 mapper 文件的参数对象呢?因为要对指定属性设置默认值.如何拦截传递给 mapper 文件的参数对象可以参考<使用(org.apache.ibatis.pl ...
- php传递数据给jquery,将值从php传递给jquery
我需要一些帮助,我想知道如何将一个值从PHP变量传递给jquery脚本? 我正在做的是打开一个模式窗口,从mysql浏览器创建的元素列表中,所以我需要传递一个变量值的锚点. 这是我的代码: $quer ...
- java值的传递_Java 8可选–基于值的类使用指南
java值的传递 In this article, we will go through the use of Java 8 Optional class and understand what a ...
- 【Java】探究Java方法的参数传递是值传递还是引用传递
测试思路 每个更改形参的方法,返回值都是void,不同方法的参数设置不同类型. 注意在方法内测地址的时候在改之前测一下,才能看出传入参数是不是传了地址.(注意反正OS的内存地址是虚拟的,JVM中的也是 ...
最新文章
- 敏捷开发实践总结(二):关于测试
- 第十三届计算机语言学大会,第十三届全国语音学学术会议(PCC 2018) 会议通知第3号...
- LeetCode --- Validate Binary Search Tree
- 传参方法:sharedApplication, NSUserDefaults, protocol 和 delegate(实例)
- 女性最容易动心的21种时刻
- 自家主机建云服务器_如何创建一台Linux云主机?
- python项目结构图_python 项目目录结构设置
- 深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读
- php 论坛回复引用功能,PHPWind商业版论坛功能介绍
- vue项目在浏览器地址栏设置图标
- crmeb多商户1.7.3
- css 设置冻结表格头,固定/冻结行表头、列表头的做法
- java做一个客房管理系统定制_java实现客房管理系统
- python中set什么意思_set在python里是什么意思
- HTML(常用标签与超链接)的案例
- 读硕士和读博士有什么区别?
- 15.JavaScript——34——JavaScript高级
- untrusted Developer You can allow using these apps in settings you can allow using these apps i
- 查看SQL Server的版本
- web应用测试的具体流程(等保测评相关)
热门文章
- std::call_once写单列模式
- 移动端实现文字轮播_移动端轮播图实现
- 画流程图activiti流程图_干货!小白也能一天画100张高逼格流程图
- mysql 天数减1_mysql 日期加减天数
- AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc
- 如何访问静态成员php,php – 如何访问类的静态成员?
- 本科计算机专业在车辆段,机电与轨道车辆工程系2021届毕业生参加成都铁路局车辆段及电务段认知实习...
- Windows平台下如何实现Unity3D下的RTMP推送
- c++ ea 代码 生成_EA公司教AI制作游戏角色,行动流畅自然,全程无需人类介入
- 如何使用websocket实现前后端通信