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

网站更改备案主体聊城手机网站

网站更改备案主体,聊城手机网站,四川成都营销型网站,湖南衡阳网站建设一、知识点 1、req.getRequestDispatch与resp.sendRedirect跳转方式的比较 一、实现原理 1、req.getRequestDispatcher#xff1a; 属于服务器端跳转#xff0c;在服务器内部将请求转发给另一个资源#xff08;如另一个 Servlet 或 JSP 页面#xff09;。调用 getReques…一、知识点 1、req.getRequestDispatch与resp.sendRedirect跳转方式的比较 一、实现原理 1、req.getRequestDispatcher 属于服务器端跳转在服务器内部将请求转发给另一个资源如另一个 Servlet 或 JSP 页面。调用 getRequestDispatcher 方法获取 RequestDispatcher 对象然后使用 forward 方法实现转发。 例如 RequestDispatcher dispatcher request.getRequestDispatcher(/targetPage.jsp); dispatcher.forward(request, response);。 整个过程对客户端是透明的客户端并不知道请求在服务器内部被转发请求和响应对象保持不变。 2、resp.sendRedirect 是客户端跳转服务器向客户端发送一个重定向响应通常是 302 或 307 状态码并在响应头中添加 Location 信息指示客户端重定向到新的 URL。 例如response.sendRedirect(http://example.com/newPage.jsp);。 客户端收到响应后会根据 Location 信息向新的 URL 发送新的请求。 二、URL 显示 1、req.getRequestDispatcher 浏览器地址栏的 URL 不会改变始终显示最初请求的 URL因为请求是在服务器内部转发客户端无感知。 2、resp.sendRedirect 浏览器地址栏会更新为新的重定向 URL因为客户端发起了新的请求。 三、请求次数 1、req.getRequestDispatcher 仅一次请求服务器将请求从一个资源转发到另一个资源服务器内部完成跳转。 2、resp.sendRedirect 会产生两次请求第一次是向原服务器请求原服务器返回重定向响应客户端收到响应后发起第二次请求到新的 URL。 四、数据传递 1、req.getRequestDispatcher 可以使用 request 对象传递数据因为是在同一个请求范围内所以在转发前设置的 request 属性在转发后的资源中可以获取。        转发是request 例如 request.setAttribute(data, value);      在转发后的页面可以使用 request.getAttribute(data);                      来获取数据。 2、resp.sendRedirect 不能使用 request 对象传递数据因为是两次不同的请求。若要传递数据可使用 session 存储或通过 URL 传递参数。            重定向是sendRendirect 例如response.sendRedirect(http://example.com/newPage.jsp?datavalue); 新页面可以通过解析 URL 参数获取数据或者使用 session.setAttribute(data, value);  存储数据在 session 中在新页面通过 session.getAttribute(data);                  获取。 五、使用场景 1、req.getRequestDispatcher 适合在服务器内部的资源之间跳转尤其是在 MVC 架构中控制器将请求转发给视图层实现页面的显示。例如在 Servlet 处理完业务逻辑后将请求转发给 JSP 页面显示结果并且希望将处理结果作为请求属性传递给 JSP 页面。 2、resp.sendRedirect 适用于需要将客户端引导到另一个不同的应用程序、域名或不同上下文的资源时。例如在用户登录成功后重定向到另一个系统或网站的页面或者在完成表单提交后重定向到一个结果页面以防止用户刷新页面时重复提交表单。 综上所述根据具体的开发需求和场景选择合适的跳转方式可以优化应用程序的性能和用户体验。 如果需要在服务器内部进行资源跳转且需要传递数据可使用 req.getRequestDispatcher如果需要引导用户到不同的 URL 或不同的上下文可使用 resp.sendRedirect。 六、 Java Servlet 示例 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;public class JumpServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 使用 req.getRequestDispatcher 进行转发if (request.getParameter(forward)! null) {request.setAttribute(message, This is a message from forward.);RequestDispatcher dispatcher request.getRequestDispatcher(/forwardPage.jsp);dispatcher.forward(request, response);} // 使用 resp.sendRedirect 进行重定向else if (request.getParameter(redirect)! null) {response.sendRedirect(/redirectPage.jsp);}} }当请求参数包含 forward 时使用 getRequestDispatcher 进行转发并设置 request 属性 message将请求转发到 /forwardPage.jsp。当请求参数包含 redirect 时使用 sendRedirect 重定向到 /redirectPage.jsp。 forwardPage.jsp 页面代码展示 % page contentTypetext/html;charsetUTF-8 languagejava % html headtitleForward Page/title /head bodyh1Forward Page/h1p${message}/p /body /html在 forwardPage.jsp 中可以使用 EL 表达式 ${message} 获取通过 request 对象传递的属性。 redirectPage.jsp 页面代码展示 % page contentTypetext/html;charsetUTF-8 languagejava % html headtitleRedirect Page/title /head bodyh1Redirect Page/h1 /body /html注意使用 sendRedirect 时如果是相对 URL它是相对于当前 Servlet 上下文的如果需要重定向到其他域名或绝对 URL需要提供完整的 URL 地址。而 getRequestDispatcher 的路径通常是相对于当前 Web 应用程序的路径。 参考链接 参考链接creq.getRequestDispatch与resp.sendRedirect跳转方式_req.getrequestdispatcher-CSDN博客 2、BootStrap官方文档 Dropdowns · Bootstrap v5 中文文档 v5.3 | Bootstrap 中文网 对应class属性的一些值大家忘记了可以参考这一篇博客 Bootstrap的class属性_bootstrap class-CSDN博客 这篇对于表格写的还比较详细 Bootstrap系列之表格Tables_bootstrap table-CSDN博客  其实这种东西多用几次自然就记得了记得一个大概把知识点过一遍等要用的时候也可以去查原来觉得一定要全部记住就像考试一样后来发现其实人生是开卷考试 3、查询角色列表到页面中——转发模式 1、设计思路 第一点页面的设计 如图只是简单的做了一个大致能表示意思的网页大部分是在bootstrap里边扒拉出来的五个button左右两个表格。  第二点controller的设计 第三点数据库的连接处理查询 第四点如何遍历查询到的数据并展示到页面上 2、controller代码展示 package com.illley.controller;import com.illley.bean.Role; import com.illley.service.ManagerService; import com.illley.service.impl.ManagerServiceImpl;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;/** 对应角色的所有操作 * /role 返回基本页面 * /role?actadd 新增角色 * /role?actdelete 删除角色 * /role?actupdate 修改角色 * /role?actxxxx ....... * * */WebServlet(urlPatterns {/role}) public class RoleController extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String act req.getParameter(act);if(actnull){//返回基本页面 往哪放呢 可以req.getRequestDispatcher(/admin/role.jsp).forward(req,resp);//转发//待解决问题 如果不登 能看到这个页面吗}else if(act.equals(rolelist)){rolelist(req,resp);}}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}void rolelist(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//查询所有角色信息//最标准的 还是 得有 roleService 等 一个表对一个javabean controller dao serviceManagerService ms new ManagerServiceImpl();ListRole roleList ms.roleList();req.setAttribute(roleList,roleList);req.getRequestDispatcher(/admin/role.jsp).forward(req,resp);}void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//新增的操作} }3、数据库的连接查询 分dao层  和service层                                   三层架构规范 //dao层 package com.illley.dao;import com.illley.bean.Role;import java.util.List;public interface RoleDao extends BaseDao{ListRole roleList(); }//daoImpl层 package com.illley.dao.impl;import com.illley.bean.Role; import com.illley.dao.RoleDao; import org.springframework.jdbc.core.BeanPropertyRowMapper;import java.util.List;public class RoleDaoUmpl implements RoleDao {Overridepublic ListRole roleList() {String sql select * from role;return t.query(sql,new BeanPropertyRowMapper(Role.class));} }//service层 package com.illley.service;import com.illley.bean.Manager; import com.illley.bean.Role;import java.util.List;public interface ManagerService {Manager login(String username, String password);ListRole roleList(); }//serviceimpl层部分代码Overridepublic ListRole roleList() {return rd.roleList();} 4、如何遍历查询到的数据并展示到页面上 % page contentTypetext/html;charsetUTF-8 languagejava % % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleRole/titlelink href${pageContext.request.contextPath}/css/bootstrap.min.css relstylesheet/!-- bt的样式 --/headbody div classcontainer-fluiddiv classrowbutton typebutton classbtn btn-secondary disabled 角色和管理员/button/divdiv classrow g-2 mt-2 div classcol-6 border-end border-dark-subtle border-2 shadow-lg a typebutton classbtn btn-info href${pageContext.request.contextPath}/role?actrolelist角色列表/abutton typebutton classbtn btn-primary新增角色/buttontable classtable table-hover table-bordered border-primary mt-2theadtrth scopecoldiv classform-check form-check-inlineinput classform-check-input border-primary typecheckbox idchk1 value1label classform-check-label forchk1全选/label/div/thth scopecolID/thth scopecol角色名称/thth scopecol创建时间/thth scopecol简单描述/thth scopecol操作/th/tr/theadtbodyc:forEach items${requestScope.roleList} varrtrth scoperowdiv classform-check form-check-inlineinput classform-check-input border-primary typecheckbox idrole${r.id} valueoption1/div/thtd${r.id}/tdtd${r.rolename}/tdtd${r.createtime}/tdtd${r.display}/tdtdc:if test${r.id!1}button typebutton classbtn btn-outline-primary btn-sm查看资源/buttonbutton typebutton classbtn btn-outline-danger btn-sm 删除/button/c:if/td/tr/c:forEach/tbody/table/divdiv classcol-6button typebutton classbtn btn-primary管理员列表/buttonbutton typebutton classbtn btn-info新增管理员/buttontable classtable table-hover table-bordered border-primary mt-2theadtrth scopecoldiv classform-check form-check-inlineinput classform-check-input border-primary typecheckbox idchk2 value1label classform-check-label forchk2全选/label/div/thth scopecolID/thth scopecol用户名/thth scopecol密码/thth scopecol角色名称/thth scopecol创建时间/th/tr/theadtbody%--trth scoperowdiv classform-check form-check-inlineinput classform-check-input border-primary typecheckbox idi1 valueoption1/div/thtdMark/tdtdOtto/tdtdmdo/tdtdMark/tdtdMark/td/tr--%/tbody/table/div/div /divscript src${pageContext.request.contextPath}/js/bootstrap.bundle.min.js/script !-- bt的脚本 -- script src${pageContext.request.contextPath}/js/jquery-3.7.1.min.js/script!-- jq的脚本[bt不需要,我们自己需要] -- /body /html讲一下就是通过jstl里边的c:foreach 把转发中的rolelist属性中的存放着role对象的list拿出来然后遍历每一个role的数据展示在屏幕上。
http://www.hkea.cn/news/14579009/

相关文章:

  • 自己买空间做网站潜江做网站的
  • 无锡网站制作优化推广公司摄影网站的意义
  • 网站建设 乐达云创在网站和网页的区别
  • 个人网站建设计划报告团员建设网站
  • 网站开发专业简历模板做美篇发网站
  • 西宁做网站好的公司学校资源网站建设目标
  • 音乐网站手机模板建设很行官方网站
  • 东莞网站推广团队拓展如何在网上推广
  • 广告设计图片大全 图片素材百度推广优化师是什么
  • 后台建设电商网站手机网站 微信
  • 嘉兴做微网站设计宁波网站建设系统介绍
  • 深圳公司注册的服务机构seo排名教程技术
  • 徐州建筑工程招投标网站服务器运行一段时间网站打不开
  • 茂名营销型网站建设微信公众号网站开发模板
  • 网站seo诊断分析建立门户网站的意义
  • 珠海多语种网站制作小公司没网站
  • 中山建设招聘信息网站工程合同范本通用版
  • 如何进入优容网站潍坊网站建设服务商
  • 企业网站制作规划做网站需要好多图片
  • php构建网站电子商务主要学什么就业方向工资
  • 东胜区教育网站入口网站建设微信版
  • 上海网站建设公司兴田德润放心产品设计流程
  • 免费的网站推广方法网站后台管理系统软件
  • 夏县做网站企业做网站的好处
  • 网站开发常用的技术官网申请
  • 如何自助建网站包头网站建设哪家好
  • 礼品网站建设策划产品推荐词
  • 店铺网站建设策划书万达网站建设
  • 深圳专业营销网站制作清欢互联网网站建设
  • 成都网站设计网站制作公司怎么样购买网站空间