当前位置: 首页 > news >正文

Java基础入门day65

day65

web项目

页面设计

仿照小米官网,将首页保存到本地为一个html页面,再将html页面保存为jsp页面,在项目中的web.xml文件中配置了欢迎页

<welcome-file-list><welcome-file>TypesServlet</welcome-file>
</welcome-file-list>
package com.saas.servlet;
​
import com.saas.entity.Types;
import com.saas.service.ITypesService;
import com.saas.service.impl.TypesServiceImpl;
​
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;
​
@WebServlet("/TypesServlet")
public class TypesServlet extends HttpServlet {
​private ITypesService typesService = new TypesServiceImpl();
​@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Types> types = typesService.getAllTypes();
​req.setAttribute("types", types);
​req.getRequestDispatcher("types.jsp").forward(req, resp);}
}
package com.saas.service;
​
import com.saas.entity.Types;
​
import java.util.List;
​
public interface ITypesService {List<Types> getAllTypes();
}
package com.saas.service.impl;
​
import com.saas.dao.ITypesDao;
import com.saas.dao.impl.TypesDaoImpl;
import com.saas.entity.Types;
import com.saas.service.ITypesService;
​
import java.util.List;
​
public class TypesServiceImpl implements ITypesService {
​private ITypesDao typesDao = new TypesDaoImpl();
​@Overridepublic List<Types> getAllTypes() {return typesDao.getAllTypes();}
}
package com.saas.dao;
​
import com.saas.entity.Types;
​
import java.util.List;
​
public interface ITypesDao {List<Types> getAllTypes();
}
package com.saas.dao.impl;
​
import com.saas.dao.ITypesDao;
import com.saas.entity.Types;
import com.saas.util.DruidUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
​
import java.sql.SQLException;
import java.util.List;
​
public class TypesDaoImpl implements ITypesDao {
​private QueryRunner qr = new QueryRunner(DruidUtil.getDataSource());
​
​@Overridepublic List<Types> getAllTypes() {try {return qr.query("select * from types", new BeanListHandler<Types>(Types.class));} catch (SQLException e) {throw new RuntimeException(e);}}
}
package com.saas.util;
​
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
​
import javax.sql.DataSource;
​
public class DruidUtil {
​private static Env env = Env.getInstance();
​public static DataSource getDataSource(){try {DruidDataSource dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(env);
​dataSource.setUrl(env.getProperty("url"));dataSource.setUsername(env.getProperty("user"));dataSource.setPassword(env.getProperty("pass"));dataSource.setDriverClassName(env.getProperty("driver"));
​return dataSource;} catch (Exception e) {throw new RuntimeException(e);}}
}
package com.saas.util;
​
import java.io.IOException;
import java.util.Properties;
​
public class Env extends Properties {
​private static final long serialVersionUID = 1L;
​private static Env env = new Env();
​private Env() {super();try {load(getClass().getResourceAsStream("/db.properties"));} catch (IOException e) {throw new RuntimeException(e);}}
​public static Env getInstance() {return env;}
​public static String get(String key) {return env.getProperty(key);}
}
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mi?characterEncoding=utf-8
user=root
pass=Abc@1234
页面代码

将页面展示出来

http://www.lryc.cn/news/378114.html

相关文章:

  • 解密制度的规定和解密工作的具体流程
  • 实际中常用的网络相关命令
  • 机器学习补充
  • 机器学习——RNN、LSTM
  • Java项目学习(员工管理)
  • 视觉SLAM14精讲——相机与图像3.3
  • 【路径规划】基于粒子群结合遗传算法实现机器人栅格地图路径规划
  • 内容安全复习 9 - 身份认证系统攻击与防御
  • Python-gui开发之Pycharm+pyside6/Pyqt6环境搭建
  • 大数据开发语言Scala入门 ,如何入门?
  • 【人机交互 复习】第1章 人机交互概述
  • HCIP-HarmonyOS Device Developer 课程大纲
  • 蓝桥杯 经典算法题 查找两个总和为特定值的索引
  • Java | Leetcode Java题解之第169题多数元素
  • 十大机器学习算法深入浅出
  • 【论文笔记】Parameter-Effificient Transfer Learning for NLP
  • Qt异常处理
  • 【ElasticSearch】ElasticSearch实战
  • 48-3 内网渗透 - 令牌操纵
  • 架构师之 Kafka 核心概念入门
  • Redis通用命令详解
  • 物联网设备安装相关知识整理
  • React实现H5手势密码
  • [leetcode hot 150]第十五题,三数之和
  • 视频AI分析定时任务思路解析
  • tcp 粘包和拆包 及 解决粘包方案
  • 【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索20页论文及Python代码
  • 华为设备telnet 远程访问配置实验简述
  • 在HTML中,如何正确使用语义化标签?
  • WHAT - 高性能和内存安全的 Rust(一)