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

山东网站备案时间哪些网站的做的好看

山东网站备案时间,哪些网站的做的好看,株洲网站建设技术公司,市场调研怎么写目录 一、Read 方法返回 -1 的问题 二、JDBC 优化 1. 创建配置文件 2. 创建工具类 3. 简化 JDBC 的步骤 三、修改密码 优化返回数据 创建修改密码的页面 注意 测试 四、优化响应动态资源 1. 创建 LoginServlet 类 2. 把登录功能的代码放到 LoginServlet 类 3. 创…目录 一、Read 方法返回 -1 的问题 二、JDBC 优化 1. 创建配置文件 2. 创建工具类 3. 简化 JDBC 的步骤 三、修改密码 优化返回数据 创建修改密码的页面 注意 测试 四、优化响应动态资源 1. 创建 LoginServlet 类 2. 把登录功能的代码放到 LoginServlet 类 3. 创建LoginServlet 对象调用service方法 五、作业 1. 每个 servlet 的 service 方法都是一样的如何优化 2. 如何再进一步优化 Servlet  一、Read 方法返回 -1 的问题 在 上次的基础上我们需要解决一下  read 读取到 -1 导致报错的问题 我们需要知道为什么会读取到 -1什么情况下会读取到 -1 read 方法返回 -1 有以下几种情况 1. 客户端 Socket 关闭Socket.close 2. 客户端关闭输出流客户端在关流的时候,还多了一个往服务器写结束标记的动作结束标记 -1  3. 读取超时抛出异常java 中的 Socket 默认没有超时限制 4. 读取文件时到了文件的末尾表示没有数据可读也会返回 -1 那么如何解决呢 很简单判断读取到的是不是 -1 如果是 -1 直接 return 不用往下执行了 二、JDBC 优化 当前数据库连接信息都写在了代码里面相对于硬编码如果以后连接信息更改了比如数据库连接地址数据库密码等那么所有关于JDBC 获取数据库连接的代码都需要修改 解决方案 生成配置文件 通过Properties类去解析配置文件 创建一个DBPropUtils工具类来获取配置文件的信息 1. 创建配置文件 配置数据库连接信息 2. 创建工具类 获取配置文件的数据库连接信息 package com.shao.Utils;import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Properties; import java.util.Set;public class DBPropUtil {private static HashMapString, String propMap new HashMapString, String();static {Properties prop new Properties();try {// 读取数据库配置文件// config 包名// DBConnection.properties 配置文件名prop.load(new FileInputStream(config File.separator DBConnection.properties));// 获取所有的键SetObject keySet prop.keySet();IteratorObject it keySet.iterator();// 遍历 键的 Set 集合while (it.hasNext()) {// 把键转成字符串类型String key (String) it.next();// 获取键对应的值String value prop.getProperty(key);// 把键值对 添加到 map集合中propMap.put(key, value);}} catch (IOException e) {throw new RuntimeException(e);}}// 对外提供一个接口通过key 获取对应的值public static String getProp(String key) {return propMap.get(key);} } 3. 简化 JDBC 的步骤 创建 数据库连接类 获取连接释放资源的方法也可以放到这个类里这样可以简化响应类的代码 package com.shao.Utils;import java.sql.*;public class DBConnectUtil {/*** 静态代码块当类被加载时就会执行代码块且只执行一次* */static {try {// 加载驱动Class.forName(com.mysql.cj.jdbc.Driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 对外提供的方法获取数据库连接*/public static Connection getConnection() {Connection connection null;try {connection DriverManager.getConnection(DBPropUtil.getProp(url),DBPropUtil.getProp(user),DBPropUtil.getProp(password));} catch (SQLException e) {e.printStackTrace();}return connection;}/*** 释放资源*/public static void releaseSource(Connection connection, PreparedStatement pstmt, ResultSet resultSet) {// 释放连接try {if (connection ! null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}//关闭预编译对象try {if (pstmt ! null) {pstmt.close();}} catch (SQLException e) {e.printStackTrace();}//关闭结果集try {if (resultSet ! null) {resultSet.close();}} catch (SQLException e) {e.printStackTrace();}} }在响应类中调用方法获取数据库连接 测试 三、修改密码 登录功能有了我们再练习一个修改密码的功能 和登录功能类似因为我们封装了 JDBC 的获取数据库连接的操作简化了JDBC所以获取连接只需要调用工具类的方法就可以了 Connection connection null;PreparedStatement pstmt null;int result 0;try {// 3. 获取数据库连接connection DBConnectUtil.getConnection();// 4. 获取可执行对象// 定义 SQL 语句String SQL UPDATE train.users SET password ? WHERE account ?;pstmt connection.prepareStatement(SQL);// 设置占位符的值String account httpRequest.getRequestBodyParams().get(account);String password httpRequest.getRequestBodyParams().get(password);pstmt.setString(1, password);pstmt.setString(2, account);// 5. 执行sql语句获取结果result pstmt.executeUpdate();// 6. 结果处理responseDTO responseDTO null;if (result 0) {responseDTO new responseDTO(200, null, 修改成功);} else {responseDTO new responseDTO(201, null, 修改失败);}// 调用方法返回数据send(JSON.toJSONBytes(responseDTO));} catch (SQLException e) {e.printStackTrace();} finally {// 7. 释放资源// 因为 更新添加删除 不需要结果集所以不需要 resultSet不用释放资源DBConnectUtil.releaseSource(connection, pstmt, null);} 优化返回数据 我们现在返回的数据是字符串类型的然后转成字节数组这样的话数据响应到客户端还是字符串格式不方便解析数据所以需要把要响应的数据转成 JSON 格式 如何转成 JSON 格式呢 1. 添加第三方 jar 包 百度网盘 fastjson2 2. 使用 转成 JSON 格式然后转成字节数组因为可以直接转成字节数组为了方便我们把响应方法里接收数据的参数也改成字节数组类型 创建修改密码的页面 百度网盘 jquery 文件 !DOCTYPE html html langen headmeta charsetUTF-8title修改密码/titlescript src../static/js/jquery-3.5.1.min.js/script /head body divdiv classcontentinput typetext classtext-input nameaccount placeholder请输入账号input typetext classtext-input namepassword placeholder请输入新密码button typebutton classsubmit-button修改密码/button/divdiv classmsgspan classsuccess-msg/span/div/div /body style.content {margin: 0 auto;width: 300px;}.msg {margin: 0 auto;width: 300px;}.text-input {width: 200px;height: 30px;margin: 10px;padding: 5px;border: 1px solid #ccc;}.submit-button {width: 100px;height: 30px;margin: 10px;padding: 5px;border: 1px solid #ccc;cursor: pointer;border-radius: 5px;box-shadow: 0 0 1px #ccc;} /style scriptdocument.querySelector(.submit-button).onclick function () {console.log(点击了修改按钮)let username document.querySelector(input[nameaccount]).value;let password document.querySelector(input[namepassword]).value;let data {account: username,password: password,}$.ajax({url: http://127.0.0.1:8080/ChangePassword,type: POST,data: data,success: function (data) {console.log(data)data JSON.parse(data)if (data.statusCode 200) {document.querySelector(.success-msg).innerHTML data.msg;} else {document.querySelector(.success-msg).innerHTML data.msg;}}})}/script /html 注意        ❗❗❗ 因为修改密码的页面有引用到 static 文件夹下的 js 文件夹的 jquery 文件当页面在游览器打开后会自动请求 jquery 文件当请求到达后端时我们给请求资源的路径加了  webs/pages 的前缀这样的话就会在 webs/pages/static/js 文件夹下找 jquery 文件路径不对所以获取不到 解决方案是只保留 webs/ 前缀即可这样资源的路径就正确了 测试 在游览器的地址栏中输入 http://127.0.0.1:8080/pages/changePassword.html 因为删除了 pages 前缀所以请求 pages 文件夹下的资源文件都需要加上 pages 四、优化响应动态资源 现在的结构是响应动态资源的代码都写在了响应类里这样的话当后面加了很多功能响应类的代码就会很多一是不好维护二是不利于协同开发 那怎么解决呢 解决方案是一个功能做成一个 servlet  1. 创建 LoginServlet 类 2. 把登录功能的代码放到 LoginServlet 类 package com.shao.Servlet;import com.alibaba.fastjson2.JSON; import com.shao.Utils.DBConnectUtil; import com.shao.Utils.responseDTO; import com.shao.net.HttpRequest; import com.shao.net.HttpResponse;import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet;public class LoginServlet {Connection connection null;PreparedStatement pstmt null;ResultSet resultSet null;responseDTO responseDTO null;public void service(HttpRequest request, HttpResponse response) {if (request.getRequestMethod().equals(GET)) {doGet(request, response);} else if (request.getRequestMethod().equals(POST)) {doPost(request, response);}}public void doGet(HttpRequest request, HttpResponse response) {try {// 3. 获取数据库连接connection DBConnectUtil.getConnection();// 4. 获取可执行对象String SQL select count(*) from train.users where account ? and password ?;pstmt connection.prepareStatement(SQL);// 设置占位符的值String account request.getRequestBodyParams().get(account);String pwd request.getRequestBodyParams().get(password);pstmt.setString(1, account);pstmt.setString(2, pwd);// 5. 执行sql语句获取结果集resultSet pstmt.executeQuery();// 6. 结果处理if (resultSet.next() resultSet.getInt(1) 0) {responseDTO new responseDTO(200, null, 登录成功);} else {responseDTO new responseDTO(201, null, 登录失败请检查账号和密码);}//调用方法返回数据response.send(JSON.toJSONBytes(responseDTO));} catch (Exception e) {e.printStackTrace();} finally {// 7. 释放资源DBConnectUtil.releaseSource(connection, pstmt, resultSet);}}public void doPost(HttpRequest request, HttpResponse response) {responseDTO new responseDTO(400, null, 不支持POST提交方法);response.send(JSON.toJSONBytes(responseDTO));} }3. 创建LoginServlet 对象调用service方法 五、作业 1. 每个 servlet 的 service 方法都是一样的如何优化 2. 如何再进一步优化 Servlet  把Servlet 进一步划分为 Servlet 层Service 业务逻辑层和 Dao 数据访问层
http://www.hkea.cn/news/14307792/

相关文章:

  • 深圳市住房与建设局网站上门做网站哪里有
  • 网站建设项目报告总结国家批准的正规学历提升机构
  • 网站鼠标特效代码linux wordpress lnmp
  • 电子商务网站域名电子商务网站建设 试题
  • 长春好的做网站公司wordpress不能编辑不能新建
  • 网站应用软件怎么架设做网站怎么选关键词
  • 重庆网站seo诊断实时开奖走势网站建设
  • 用jsp做网站主界面电商网站设计系列
  • 网络推广网站推广方法网站建设公司海外
  • 佛山专业网站制作怎么免费开网站
  • 湖南网站建设360o源码网站下载
  • 长沙网站建设1681989建设主管部门门户网站
  • 模板网站建设全过程中国著名的外贸公司
  • 洛阳网站建设启辰网络无锡网络推广
  • 怎么做自己的网站logo公众号怎么开通申请
  • 邯郸建立网站费用租用的网站空间的缺点
  • 免费建网站赚钱网站h1标签用在哪里
  • 网站建设需要哪些人湛江住房和城乡建设部网站
  • 做网站的一些费用北京网站建设代理
  • 上海建站模板厂家跨境电商无货源怎么做
  • 广州建站业务公司衡水提供网站设计公司哪家专业
  • 如何用源码搭建网站源码线上设计师与线下设计师的区别
  • 免费做会计试题网站seo排名软件怎么做
  • 杭州餐饮 网站建设镇江丹阳
  • 成都建设诚信网站国外产品短视频拍摄
  • 做视频网站用什么云盘好政务网站开发方案
  • 企业网站建站元素怎么用html做移动网站
  • 抚顺网站建设技术员招聘阿里巴巴网站建设公司
  • 做网站公司郑州郑州的网站建设公司哪家好河南省建设厅证件查询官网
  • 整人关不掉的网站怎么做主机屋 wordpress