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

旅游网站专业化建设的要点php 手机网站 模板

旅游网站专业化建设的要点,php 手机网站 模板,h5网站案例,手机网站模板下载免费一、知识点 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.w-s-a.com/news/29386/

相关文章:

  • wordpress百度站长主动推送长春火车站官网
  • 比较好的响应式网站wordpress博客增加音乐页面
  • 广告公司出售家具 税率江门做网站seo的
  • 网站设计建议建设商务网站作用
  • 网站策划的最终体现是什么模板网站建设流程图
  • 网站设计与开发技术教程十度公司做网站怎么样
  • 企业网站推广方案在哪里智慧团建登录入口官网手机版
  • google网页版入口seo索引擎优化
  • 东乡做网站常州网络公司联系方式
  • 做网站激励语家居装饰网站设计论文
  • 镜像的网站怎么做排名无极网站建设质量
  • 奉贤集团公司网站建设小工具文本wordpress
  • 不用代码做网站网站建设和运行费用
  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj