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

建设网站要做的工作wordpress免费

建设网站要做的工作,wordpress免费,有什么平台可以做网站,和凡科网类似的网站#x1f3bc;个人主页#xff1a;【Y小夜】 #x1f60e;作者简介#xff1a;一位双非学校的大二学生#xff0c;编程爱好者#xff0c; 专注于基础和实战分享#xff0c;欢迎私信咨询#xff01; #x1f386;入门专栏#xff1a;#x1f387;【MySQL#xff0… 个人主页【Y小夜】 作者简介一位双非学校的大二学生编程爱好者 专注于基础和实战分享欢迎私信咨询 入门专栏【MySQLJava基础Rust】 热门专栏【PythonJavawebVue框架】 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持❤️ Tomcat配置 不会使用Tomcat的小伙伴可以去看 搭建第一个Web服务器在eclipse或idea上部署Tomcat服务器_eclipse创建一个web项目-CSDN博客 Server部分 将URL部分配置为 http://localhost:8080/webdingcan/login.jsp Deployment部分 登入部分 前端页面login.jsp部分 代码 % page contentTypetext/html;charsetUTF-8 languagejava % %taglib prefixc urihttp://java.sun.com/jsp/jstl/core % html headtitle登入注册界面/title%-- 引入Bootstrap--%link hrefhttps://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheetlink relstylesheet hrefcss/login.css /head body form actionshowFoodServlet methodpost roleform classform-horizontaldiv classfirstdiv classone优选外卖订餐系统/divdiv classform-grouplabel forfirstname classcol-sm-2 control-label账户名/labeldiv classcol-sm-8input idfirstname typetext classform-control namename placeholder请输入用户名/div/divdiv classform-grouplabel forlastname classcol-sm-2 control-label密码/labeldiv classcol-sm-8input classform-control idlastname typepassword namepassword placeholder请输入密码/div/divdiv classchoseinput typeradio nameidentity value0 checkedlabel用户/labelinput typeradio nameidentity value1label商家/label/divdiv classtwobutton typesubmit classbtn登入/button/divdiv classthreea hrefu1/signUer.jsp rolebutton classbtn用户注册/a/divdiv classfourlabel${msg}/label/div/div /form /body /html解析 这是一个使用JSP和Bootstrap框架创建的登录注册界面 页面头部声明了页面的内容类型为text/html;charsetUTF-8表示页面使用的是HTML格式并且字符编码为UTF-8。同时使用了Java语言编写JSP代码。 引入了JSTL标签库用于在JSP页面中进行条件判断和循环等操作。 页面主体部分包含了一个表单表单的action属性设置为showFoodServlet表示提交表单后会向该URL发送请求。表单的method属性设置为post表示使用POST方法提交表单数据。 表单内部包含一个div元素class属性设置为first表示这是整个登录注册界面的主体部分。 在first div内部有一个标题显示为优选外卖订餐系统。 接下来是一个用户名输入框label标签显示账户名input标签的id属性设置为firstnametype属性设置为text表示这是一个文本输入框。name属性设置为name表示提交表单时将该输入框的值作为名为name的参数传递。placeholder属性设置为请输入用户名表示输入框中的提示信息。 类似地还有一个密码输入框label标签显示密码input标签的id属性设置为lastnametype属性设置为password表示这是一个密码输入框。name属性设置为password表示提交表单时将该输入框的值作为名为password的参数传递。placeholder属性设置为请输入密码表示输入框中的提示信息。 接下来是一个单选按钮组用于选择用户或商家身份。两个单选按钮分别设置了value属性为0和1表示不同的选项值。默认选中第一个单选按钮用户。 在单选按钮下方有一个提交按钮button标签的type属性设置为submit表示点击该按钮会提交表单。按钮上的文字显示为登入。 在提交按钮下方有一个链接a标签的href属性设置为u1/signUer.jsp表示点击该链接会跳转到指定的URL。链接上的文字显示为用户注册。 最后有一个label标签用于显示错误信息内容为${msg}其中msg是一个变量可能在后端代码中设置。 总体来说这个登录注册界面提供了基本的表单验证功能用户可以输入用户名和密码选择身份然后点击登入按钮进行登录。如果登录失败页面上会显示错误信息。同时还提供了一个用户注册的链接。 效果 后端处理过滤器部分 代码 package com.dingcan.controller;import com.dingcan.service.Impl.UserServiceImpl; import com.dingcan.service.UserService; import com.dingcan.service.Impl.ShangServiceImpl; import com.dingcan.service.ShangService;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; WebFilter(filterName FoodFilterServlet,value /showFoodServlet) public class FoodFilterServlet implements Filter {public void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest req(HttpServletRequest) servletRequest;HttpServletResponse resp(HttpServletResponse) servletResponse;String name req.getParameter(name);String password req.getParameter(password);String identity null;if (req.getSession().getAttribute(identity)!null){identity(String) req.getSession().getAttribute(identity);}else {identityreq.getParameter(identity);req.getSession().setAttribute(identity,identity);}if(identity.equals(0)){//判断session中是否为用户if ( req.getSession().getAttribute(uid1)!null) {resp.sendRedirect(ushowFoodServlet);return;}//创建用户对象UserService userServicenew UserServiceImpl();int uiduserService.FindUid(name,password);if (uid!0){req.getSession().setAttribute(uid1,uid);resp.sendRedirect(ushowFoodServlet);}else {req.getSession().setAttribute(uid1, null);req.getSession().setAttribute(identity, null);//如果登入失败String msg 账户名或密码错误请重新输入;req.setAttribute(msg, msg);req.getRequestDispatcher(login.jsp).forward(req, resp);}}else if(identity.equals(1)){//创建商家对象ShangService shangServicenew ShangServiceImpl();//判断session中是否为商家if ( req.getSession().getAttribute(sid1)!null) {filterChain.doFilter(req, resp);return;}int sidshangService.FindSid(name,password);if(sid!0){// 登录成功将用户信息存储在session中req.getSession().setAttribute(sid1,sid);filterChain.doFilter(req, resp);}else{// 如果登录失败也将账户信息设置为nullreq.getSession().setAttribute(sid1, null);req.getSession().setAttribute(identity, null);String msg 账户名或密码错误请重新输入;req.setAttribute(msg, msg);req.getRequestDispatcher(login.jsp).forward(req, resp);}}}public void destroy() {Filter.super.destroy();} }解析 这段代码是一个Java Web应用程序中的过滤器Filter用于处理用户登录和商家登录的验证。过滤器的作用是在请求到达目标Servlet之前对请求进行预处理例如验证用户身份、过滤敏感词汇等。在这个例子中过滤器主要用于验证用户和商家的登录信息。 导入相关类导入了UserServiceImpl、ShangServiceImpl、UserService、ShangService等服务类以及javax.servlet包下的Filter、FilterChain、ServletRequest、ServletResponse等接口和类。 定义FoodFilterServlet类实现了Filter接口并使用WebFilter注解指定了过滤器的名称和要过滤的URL路径/showFoodServlet。 init方法初始化过滤器时调用的方法这里只是简单地调用了父类的init方法。 doFilter方法主要的逻辑处理方法当有请求到达时会被调用。首先获取HttpServletRequest和HttpServletResponse对象然后从请求中获取用户名、密码和身份信息。接着根据身份信息判断是用户还是商家并进行相应的处理。 如果身份为0用户检查session中是否已经有用户信息如果有则重定向到用户展示食品的页面如果没有则创建UserService对象调用FindUid方法查找用户ID如果找到则将用户ID存入session并重定向到用户展示食品的页面否则清空session中的用户信息并将错误信息设置到request域中最后转发到登录页面。 如果身份为1商家检查session中是否已经有商家信息如果有则继续执行后续操作如果没有则创建ShangService对象调用FindSid方法查找商家ID如果找到则将商家ID存入session并继续执行后续操作否则清空session中的商家信息并将错误信息设置到request域中最后转发到登录页面。 destroy方法销毁过滤器时调用的方法这里只是简单地调用了父类的destroy方法。 总结这个过滤器主要用于处理用户和商家登录的验证根据登录信息的不同将用户或商家的信息存储在session中并根据验证结果进行相应的跳转。 登入后显示餐品信息部分 商家登入后显示 后端请求ShowFoodServlet部分 ✨代码 package com.dingcan.controller;import cn.hutool.db.Entity; import com.dingcan.service.FoodService; import com.dingcan.service.Impl.FoodServiceImpl;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(name ShowFoodServlet, value /showFoodServlet) public class ShowFoodServlet extends HttpServlet {FoodService foodServicenew FoodServiceImpl();protected void service(HttpServletRequest req, HttpServletResponse resp) throws javax.servlet.ServletException, IOException {//获取session中的sidint sid1(int)req.getSession().getAttribute(sid1);String sqlselect * from food,shangjia,dianpu where food.fdianiddianpu.did and dianpu.didshangjia.sdianid and sidsid1;ListEntity listfoodService.findFood(sql);//将list放入request域中req.setAttribute(list,list);req.getRequestDispatcher(/s1/showFood1.jsp).forward(req,resp);}}✨解析 这段代码是一个Java Servlet用于处理HTTP请求并返回HTTP响应。它主要用于展示特定商家的餐品信息。以下是对代码的详细解析 package com.dingcan.controller;这是代码所在的包名表示该类属于com.dingcan.controller包。 import cn.hutool.db.Entity;导入了cn.hutool.db.Entity类这是一个用于操作数据库实体的工具类。 import com.dingcan.service.FoodService;导入了FoodService接口这是一个用于处理食品相关业务逻辑的服务接口。 import com.dingcan.service.Impl.FoodServiceImpl;导入了FoodService接口的实现类FoodServiceImpl。 import javax.servlet.annotation.WebServlet;导入了WebServlet注解用于声明Servlet的配置信息。 import javax.servlet.http.HttpServlet;导入了HttpServlet类这是Servlet的基本类。 import javax.servlet.http.HttpServletRequest;导入了HttpServletRequest类用于处理客户端发送的请求。 import javax.servlet.http.HttpServletResponse;导入了HttpServletResponse类用于生成服务器端的响应。 import java.io.IOException;导入了IOException类用于处理输入输出异常。 WebServlet(name ShowFoodServlet, value /showFoodServlet)使用WebServlet注解声明了一个名为ShowFoodServlet的Servlet其访问路径为/showFoodServlet。 public class ShowFoodServlet extends HttpServlet {定义了一个名为ShowFoodServlet的类继承自HttpServlet。 FoodService foodServicenew FoodServiceImpl();创建了一个FoodServiceImpl实例并将其赋值给foodService变量。 protected void service(HttpServletRequest req, HttpServletResponse resp) throws javax.servlet.ServletException, IOException {重写了HttpServlet类的service方法用于处理客户端的请求。该方法接收两个参数HttpServletRequest对象req和HttpServletResponse对象resp。 int sid1(int)req.getSession().getAttribute(sid1);从session中获取名为sid1的属性值并将其转换为整数类型。 String sqlselect * from food,shangjia,dianpu where food.fdianiddianpu.did and dianpu.didshangjia.sdianid and sidsid1;构造一个SQL查询语句用于从数据库中查询与指定商家相关的食品信息。 ListEntity listfoodService.findFood(sql);调用foodService的findFood方法传入SQL查询语句执行查询并将结果存储在list变量中。 req.setAttribute(list,list);将查询到的食品信息列表存入request域中键名为list。 req.getRequestDispatcher(/s1/showFood1.jsp).forward(req,resp);通过RequestDispatcher将请求转发到/s1/showFood1.jsp页面并将request和response对象传递给该页面。 总结这段代码定义了一个名为ShowFoodServlet的Servlet用于处理客户端发起的请求查询特定商家的食品信息并将查询结果展示在/s1/showFood1.jsp页面上。 前端页面showFood1.jsp部分 ✨代码 % page contentTypetext/html;charsetUTF-8 languagejava % % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % html headtitle展示商家登入的信息/title!-- 引入 Bootstrap --link hrefhttps://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheetlink hrefcss/sShow.css relstylesheet /head body div classfirstdiv classonediv classtwoimg srcimage/four.jpg altLOGOlabel优质外卖订餐系统/label/divdiv classthreea hrefexitServlet classbtn注销/a/div/divdiv classbtn-group-verticala hrefshowFoodServlet classbtn rolebutton餐品展示/aa hrefs1/addFood.jsp classbtn rolebutton添加餐品/aa hrefhotFoodServlet classbtn rolebutton热门餐品/aa hrefshowCarServlet classbtn rolebutton出售车/a/divdiv classfourtable classtable table-striped table-bordered table-condensedtheadtr classdangertd餐品名称/tdtd购买人数/tdtd价格/tdtd状态/tdtd操作/td/tr/theadtbodyc:forEach items${list} varfoodtr classsuccesstd${food.fname}/tdtd${food.fcount}/tdtd${food.fprice}/tdtd${food.fstate 1 ? 销售中 : 下架}/tdtda hreffindFoodServlet?fid${food.fid} classbtn btn-primary修改/a/td/tr/c:forEach/tbody/table/div /div /body /html ✨解析 这段代码是一个使用JSPJavaServer Pages编写的Web页面它使用了HTML和Bootstrap框架来构建用户界面并使用JSTLJavaServer Pages Standard Tag Library标签来动态显示数据。下面是对代码的详细解析 页面指令: % page contentTypetext/html;charsetUTF-8 languagejava %: 这行代码设置了页面的内容类型为HTML字符集为UTF-8并指定脚本语言为Java。% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %: 这行代码引入了JSTL核心标签库prefixc定义了标签前缀后面使用JSTL标签时会用到。 HTML结构: html: 定义了页面的根元素。head: 包含了页面的元数据如标题和样式表链接。title: 设置页面标题为“展示商家登入的信息”。link: 引入了Bootstrap的CSS文件用于页面样式以及自定义的CSS文件sShow.css。 页面内容: div classfirst: 定义了页面的主要内容区域。div classone: 包含了LOGO和标题。 img srcimage/four.jpg altLOGO: 显示LOGO图片。label: 显示文本“优质外卖订餐系统”。div classthree: 包含一个注销按钮链接到exitServlet。div classbtn-group-vertical: 垂直排列的按钮组包含餐品展示、添加餐品、热门餐品和出售车的链接。 导航链接: a href... classbtn rolebutton: 创建Bootstrap样式的按钮链接到不同的Servlet处理不同的业务逻辑。 表格展示: table classtable table-striped table-bordered table-condensed: 创建一个带有Bootstrap样式的表格用于展示数据。thead 和 tr classdanger: 定义表格的头部包含列标题。tbody: 表格的主体部分用于展示具体的数据。 JSTL标签使用: c:forEach items${list} varfood: 这是一个JSTL循环标签用于遍历从后端传递到页面的list集合每次循环将当前元素赋值给变量food。tr classsuccess: 表格的一行展示了餐品的名称、购买人数、价格、状态和操作按钮。c:forEach标签内部的${food.fname}, ${food.fcount}, ${food.fprice}, 和${food.fstate}是表达式用于访问food对象的属性。 条件表达式: ${food.fstate 1 ? 销售中 : 下架}: 这是一个条件表达式根据food.fstate的值显示“销售中”或“下架”。 操作链接: a hreffindFoodServlet?fid${food.fid} classbtn btn-primary修改/a: 创建一个按钮链接链接到findFoodServlet传递food.fid作为参数用于修改餐品信息。 注销链接: a hrefexitServlet classbtn注销/a: 创建一个按钮链接用于注销当前用户会话。 整个页面是一个商家登录后的管理系统界面可以展示餐品信息提供餐品管理功能如查看、添加、修改等。使用JSTL标签可以方便地将Java代码和页面内容分离提高代码的可维护性。 ✨效果 用户登入后显示 后端处理 UshowFoodServlet部分 ✨代码 package com.dingcan.controller;import cn.hutool.db.Entity; import com.dingcan.service.FoodService; import com.dingcan.service.Impl.FoodServiceImpl; import com.dingcan.service.Impl.UserServiceImpl; import com.dingcan.service.UserService;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(name UshowFoodServlet, value /ushowFoodServlet) public class UshowFoodServlet extends HttpServlet {FoodService foodServicenew FoodServiceImpl();UserService userServicnew UserServiceImpl();Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//得到标志参数用用于判断执行哪个sql语句String biaozhi0;biaozhireq.getParameter(c);if (biaozhinull)biaozhi0;String sqluserServic.FindSql(biaozhi);ListEntity listfoodService.findFood(sql);req.setAttribute(list,list);req.getRequestDispatcher(/u1/showFood2.jsp).forward(req,resp);} }✨解析 用于处理HTTP请求并与后端服务进行交互 包和导入: package com.dingcan.controller;: 声明了这个类属于com.dingcan.controller包。导入了一些必要的类包括cn.hutool.db.Entity用于数据库操作com.dingcan.service.*相关的服务类。 WebServlet注解: WebServlet(name UshowFoodServlet, value /ushowFoodServlet): 这个注解用于注册这个Servlet定义了它的名称和URL映射。当访问/ushowFoodServlet路径时这个Servlet会被调用。 类定义: public class UshowFoodServlet extends HttpServlet: 定义了一个名为UshowFoodServlet的类它继承自HttpServlet。 成员变量: FoodService foodService new FoodServiceImpl();: 创建了FoodService接口的实现类FoodServiceImpl的实例。UserService userServic new UserServiceImpl();: 创建了UserService接口的实现类UserServiceImpl的实例。 service方法: Override: 表示重写了父类的方法。protected void service(HttpServletRequest req, HttpServletResponse resp): 这是Servlet的service方法用于处理客户端的请求。String biaozhi 0;: 定义了一个字符串变量biaozhi并初始化为0用作标志参数。biaozhi req.getParameter(c);: 从请求中获取名为c的参数如果请求中没有这个参数biaozhi将保持默认值0。 获取SQL语句: String sql userServic.FindSql(biaozhi);: 使用UserService的FindSql方法根据biaozhi的值获取相应的SQL语句。 查询数据: ListEntity list foodService.findFood(sql);: 使用FoodService的findFood方法执行SQL查询并将结果存储在list中。 设置请求属性: req.setAttribute(list, list);: 将查询结果list设置为请求属性这样就可以在JSP页面中通过$ {list}访问这些数据。 请求转发: req.getRequestDispatcher(/u1/showFood2.jsp).forward(req, resp);: 将请求转发到/u1/showFood2.jsp页面同时携带了请求属性。 异常处理: 方法声明中包含了throws ServletException, IOException表示这个方法可能会抛出ServletException和IOException异常这些异常通常与HTTP请求和响应的处理有关。 总结来说这个Servlet的作用是根据请求中的参数获取相应的SQL语句执行数据库查询并将查询结果转发到JSP页面进行展示。这种模式是MVCModel-View-Controller架构中控制器层的典型应用。 前端展示showFood2.jsp部分 ✨代码 %--Created by IntelliJ IDEA.User: LenovoDate: 20/6/2024Time: 下午3:40To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % html headtitle展示用户登入的信息/title!-- 引入 Bootstrap --link hrefhttps://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheetlink hrefcss/uShow.css relstylesheet /head body div classfirstdiv classonediv classtwoimg srcimage/four.jpg altLOGOlabel优质外卖订餐系统/label/divdiv classthreea hrefexitServlet classbtn注销/a/div/divdiv classbtn-group-verticalul classmenuOnelia hrefushowFoodServlet?c1 classbtn btn rolebutton老王火锅店/aul classmenuTwolia hrefushowFoodServlet?c2 classbtn rolebutton肉类/a/lilia hrefushowFoodServlet?c3 classbtn rolebutton菜类/a/lilia hrefushowFoodServlet?c4 classbtn rolebutton其他/a/li/ul/lilia hrefushowFoodServlet?c5 classbtn rolebutton精品零食店/aul classmenuTwolia hrefushowFoodServlet?c6 classbtn rolebutton辣食/a/lilia hrefushowFoodServlet?c7 classbtn rolebutton甜食/a/lilia hrefushowFoodServlet?c8 classbtn rolebutton其他/a/li/ul/lilia hrefushowCarServlet classbtn rolebutton我的购物车/aul classmenuTwo/ul/li/ul/divdiv classfourtable classtable table-striped table-bordered table-condensedtheadtr classwarningtd餐品名称/tdtd价格/tdtd操作/td/tr/theadtbodyc:forEach items${list} varfoodtr classdangertd${food.fname}/tdtd${food.fprice}/tdtda hrefaddCarServlet?fid${food.fid}fname${food.fname}fdianid${food.fdianid}fprice${food.fprice} classbtn btn-primary购买/a/td/tr/c:forEach/tbody/table/div /div script srcjs/ucaidan.js/script /body /html ✨解析 这段代码是一个JSP页面用于展示用户登录后的信息并通过层级菜单和表格显示餐品数据。以下是对代码的详细解析 JSP注释: 页面顶部的注释是IntelliJ IDEA自动生成的提供了创建者、日期和时间信息。 页面指令: % page contentTypetext/html;charsetUTF-8 languagejava %: 设置页面的MIME类型为HTML字符集为UTF-8脚本语言为Java。% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %: 引入JSTL核心标签库使用c作为前缀。 HTML结构: html: 页面的根元素。head: 包含页面的元数据如标题和样式表链接。title: 设置页面标题为“展示用户登入的信息”。link: 引入Bootstrap的CSS文件和自定义的CSS文件uShow.css。 页面内容: div classfirst: 包含整个页面的主要内容。div classone: 包含LOGO和系统名称。div classtwo: 包含LOGO图片和系统名称标签。div classthree: 包含注销按钮链接到exitServlet。 导航菜单: div classbtn-group-vertical: 垂直排列的按钮组包含不同商家和分类的链接。ul classmenuOne 和 ul classmenuTwo: 使用列表来创建层级菜单结构。 层级菜单: 主菜单项链接到ushowFoodServlet根据不同的参数c显示不同商家的餐品。子菜单项进一步细分了餐品种类。 表格展示: table: 使用Bootstrap样式的表格展示用户的餐品信息。thead: 表格的头部包含列标题餐品名称、价格和操作。tbody: 表格的主体使用JSTL的c:forEach标签循环遍历list集合。 JSTL标签: c:forEach items${list} varfood: 用于遍历作为请求属性传递到页面的list集合。 表格行: tr: 表格的一行用于显示单个餐品的信息。td: 表格单元格显示餐品的名称(food.fname)和价格(food.fprice)。 购买操作: a hrefaddCarServlet?...: 在操作列中创建一个链接到addCarServlet的按钮用于将选中的餐品添加到购物车。链接包含了餐品的ID、名称、商家ID和价格作为查询参数。 页面底部: script srcjs/ucaidan.js/script: 引入JavaScript文件可能用于页面的动态交互或效果。 Bootstrap类: 页面使用了多个Bootstrap类如btn, btn-primary, table-striped, table-bordered, table-condensed, warning, danger来增强页面的样式和响应性。 这个JSP页面是一个用户登录后的管理系统界面可以展示不同商家的餐品信息并提供购买功能。页面通过使用JSTL标签动态展示后端传递的数据并通过Bootstrap框架增强了用户界面的友好性和交互性。 ✨效果 用户注册部分 前端页面signUer.jsp部分 代码 %--Created by IntelliJ IDEA.User: LenovoDate: 21/6/2024Time: 下午1:43To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % %-- 引入Bootstrap --% link hrefhttps://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheet html headtitle用户注册界面/titlelink href../css/sign.css relstylesheet typetext/cssscript typetext/javascript src../js/sign.js/script /head body form nameregisterForm action${pageContext.request.contextPath}/signUserServlet onsubmitreturn validateForm()div classonediv classfirst优选外卖订餐系统/divdiv classform-grouplabel classcol-sm-5 control-label账户名:/labeldiv classcol-sm-12input classform-control typetext nameusername placeholder请输入账户名/div/divdiv classform-grouplabel classcol-sm-5 control-label密码/labeldiv classcol-sm-12input classform-control typepassword namepassword1 placeholder请输入密码/div/divdiv classform-grouplabel classcol-sm-5 control-label重复密码/labeldiv classcol-sm-12input classform-control typepassword namepassword2 placeholder请再次输入密码/div/divdiv classleftbutton typesubmit classbtn btn-success btn-lg注册/button/divdiv classrightbutton typereset classbtn btn-danger btn-lg重置/button/div/div /form /body /html 解析 这段代码是一个使用HTML和Bootstrap框架构建的用户注册界面的JSP页面。以下是对代码的详细解析 JSP注释: 页面顶部的注释由IntelliJ IDEA自动生成提供了创建者、日期和时间。 页面指令: % page contentTypetext/html;charsetUTF-8 languagejava %: 设置页面的MIME类型为HTML字符集为UTF-8脚本语言为Java。 Bootstrap链接: link hrefhttps://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheet: 引入Bootstrap的CSS文件用于页面样式。 HTML结构: html: 根元素。head: 包含页面的元数据如标题和样式链接。title: 设置页面标题为“用户注册界面”。link href../css/sign.css relstylesheet typetext/css: 引入自定义的CSS样式文件。 JavaScript脚本: script typetext/javascript src../js/sign.js/script: 引入自定义的JavaScript脚本文件可能包含表单验证逻辑。 表单: form nameregisterForm action${pageContext.request.contextPath}/signUserServlet onsubmitreturn validateForm(): 创建一个表单用于提交用户注册信息。 action属性设置表单提交的URL使用了JSP表达式${pageContext.request.contextPath}来动态设置上下文路径。onsubmitreturn validateForm(): 提交表单前调用validateForm JavaScript函数进行验证。 表单控件: 使用div和form-group类创建表单控件的布局。label: 表示表单控件的说明文字。input: 创建输入字段用于输入账户名、密码和重复密码。typetext和typepassword分别用于文本输入和密码输入。 按钮: button typesubmit classbtn btn-success btn-lg注册/button: 创建提交按钮使用Bootstrap的按钮样式。button typereset classbtn btn-danger btn-lg重置/button: 创建重置按钮用于清空表单输入。 Bootstrap类: 页面使用了Bootstrap的类如form-group, col-sm-5, col-sm-12, control-label, form-control, btn, btn-success, btn-lg, btn-danger来增强表单的布局和样式。 表单验证: 表单的onsubmit事件调用了validateForm函数这可能是在sign.js脚本中定义的用于在提交表单前进行前端验证。 这个JSP页面提供了一个用户注册的表单包括账户名和密码的输入并通过Bootstrap框架增强了用户界面的友好性和响应性。表单提交时会进行前端验证并最终发送到后端的signUserServlet进行处理。 效果   后端处理SignUserServlet部分 代码 package com.dingcan.controller; import com.dingcan.service.Impl.UserServiceImpl; import com.dingcan.service.UserService;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;WebServlet(name SignUserServlet, value /signUserServlet) public class SignUserServlet extends HttpServlet {UserService userService new UserServiceImpl();Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String uname req.getParameter(username);String password req.getParameter(password1);if (userService.addUser(uname,password)) {req.setAttribute(msg, 注册成功请登入);req.getRequestDispatcher(login.jsp).forward(req, resp);}elseresp.sendRedirect(fail.jsp);} }解析 这段Java代码是一个Servlet控制器用于处理用户注册的请求。以下是对代码的详细解析 包声明: package com.dingcan.controller;: 声明了这个类属于com.dingcan.controller包。 导入: 导入了相关的类包括com.dingcan.service.Impl.UserServiceImpl和com.dingcan.service.UserService。 WebServlet注解: WebServlet(name SignUserServlet, value /signUserServlet): 注解用于注册Servlet定义了它的名称和URL映射。当访问/signUserServlet路径时这个Servlet会被调用。 类定义: public class SignUserServlet extends HttpServlet: 定义了一个名为SignUserServlet的类它继承自HttpServlet。 成员变量: UserService userService new UserServiceImpl();: 创建了UserService接口的实现类UserServiceImpl的实例。 service方法: Override: 表示重写了父类的方法。protected void service(HttpServletRequest req, HttpServletResponse resp): 这是Servlet的service方法用于处理客户端的请求。 获取请求参数: String uname req.getParameter(username);: 从请求中获取username参数。String password req.getParameter(password1);: 从请求中获取password1参数。 注册用户: if (userService.addUser(uname, password)): 使用userService的addUser方法尝试添加用户。如果用户添加成功返回true。 请求转发: req.setAttribute(msg, 注册成功请登入);: 设置一个消息属性提示用户注册成功。req.getRequestDispatcher(login.jsp).forward(req, resp);: 将请求转发到login.jsp页面携带请求属性。 重定向: else resp.sendRedirect(fail.jsp);: 如果用户添加失败例如用户名已存在则重定向到fail.jsp页面。 异常处理: 方法声明中包含了throws ServletException, IOException表示这个方法可能会抛出ServletException和IOException异常。 总结来说这个SignUserServlet的作用是接收用户提交的注册信息通过UserService的实现类UserServiceImpl添加用户根据添加结果决定是转发到登录页面还是重定向到失败页面。这种模式是MVCModel-View-Controller架构中控制器层的典型应用。 注销部分 前端页面展示 代码 div classfirstdiv classonediv classtwoimg srcimage/four.jpg altLOGOlabel优质外卖订餐系统/label/divdiv classthreea hrefexitServlet classbtn注销/a/div/div 解析 这段HTML代码是页面布局的一部分通常位于页面的顶部作为导航栏或页眉。它使用了CSS类来控制布局和样式 div classfirst: 这是最外层的div元素它可能被用来作为整个头部或导航区域的容器。 div classone: 这个div元素可能是用来进一步组织内容例如将LOGO和导航链接组合在一起。 div classtwo: 这个div元素包含了LOGO图片和系统名称可能是页面的标识部分。 img srcimage/four.jpg altLOGO: 这是LOGO图片使用src属性指定图片路径alt属性提供了图片的替代文本。label优质外卖订餐系统/label: 这是一个文本标签显示了系统名称。 div classthree: 这个div元素包含一个注销链接可能位于页面的右侧提供给用户退出登录的功能。 a hrefexitServlet classbtn注销/a: 这是一个超链接当用户点击时会向exitServlet发送请求执行注销操作。classbtn可能是在CSS中定义的用来给按钮添加样式。 CSS类: .first, .one, .two, .three: 这些类名在CSS文件中定义用来控制这些div元素的布局、样式和行为。例如它们可能控制元素的宽度、高度、背景颜色、边框、内边距、外边距等。 导航链接: 这个部分的代码可能用于实现用户注销功能。在实际应用中注销链接通常会在用户登录后才显示或者根据用户的角色和权限动态显示。 图片和文本的组合: LOGO图片和系统名称的组合是网站设计中的常见元素用于增强品牌识别度和提供直观的导航提示。 响应式设计: 由于使用了Bootstrap框架从引入的Bootstrap CSS可以推断这些元素很可能被设计为响应式以适应不同设备的屏幕尺寸。 效果 后端处理ExitServlet部分 代码 package com.dingcan.controller;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; WebServlet(name ExitServlet, value /exitServlet) public class ExitServlet extends HttpServlet {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.getSession().setAttribute(uid1,null);req.getSession().setAttribute(identity,null);req.getSession().setAttribute(sid1,null);resp.sendRedirect(login.jsp);} }解析 这段Java代码定义了一个名为ExitServlet的Servlet类它继承自HttpServlet。这个Servlet用于处理用户注销退出登录的请求 包声明: package com.dingcan.controller;: 声明了这个类属于com.dingcan.controller包。 WebServlet注解: WebServlet(name ExitServlet, value /exitServlet): 这个注解用于注册Servlet定义了它的名称和URL映射。当用户访问/exitServlet路径时这个Servlet会被调用。 类定义: public class ExitServlet extends HttpServlet: 定义了一个名为ExitServlet的类它继承自HttpServlet。 service方法: Override: 表示重写了父类HttpServlet的service方法。protected void service(HttpServletRequest req, HttpServletResponse resp): 这是Servlet的service方法用于处理客户端的请求。 注销逻辑: req.getSession().setAttribute(uid1, null);: 从会话中移除属性uid1这通常用于清除用户的ID信息。req.getSession().setAttribute(identity, null);: 从会话中移除属性identity这可能用于清除用户的身份或角色信息。req.getSession().setAttribute(sid1, null);: 从会话中移除属性sid1这可能用于清除与用户会话相关的其他信息。 重定向: resp.sendRedirect(login.jsp);: 执行注销操作后使用HttpServletResponse的sendRedirect方法重定向到login.jsp页面。这将导致浏览器接收到一个重定向响应并将用户导航到登录页面。 异常处理: 方法声明中包含了throws ServletException, IOException表示这个方法可能会抛出ServletException和IOException异常这些异常通常与HTTP请求和响应的处理有关。 ExitServlet的主要作用是在用户点击注销链接时清除会话中的用户信息并将用户重定向到登录页面从而完成注销过程。这是一种常见的Web应用程序安全实践用于确保用户在注销后不再保持登录状态。
http://www.hkea.cn/news/14545466/

相关文章:

  • 网站开发综合设计报告成全视频免费观看在线看第6季
  • 小程序定制开发网站app开发程序
  • 营销型网站需要注意专业制作标书
  • 高端网站建设费用预算网站seo优化有哪些
  • 网站视频主持人制作网站的分类有哪些
  • 建立本地网站小程序网站开发怎么样
  • 深圳家具网站建设安卓手机app开发教程
  • 通化网站推广做电商一个月能挣多少钱
  • 怎么做网站快照做网站还有意义
  • 自助建站管理平台在哪里找手机网站建设公司
  • 深圳集团网站开发wordpress 添加媒体
  • 沈阳建站程序华泰保险公司官方网站电话
  • 企业自己做网站的成本泰安人才网最新消息
  • 企业网站 合同大学网站建设目标
  • 大理建设招标有限公司网站上海建设银行营业网站
  • 国际域名注册网站公司flash网站模板
  • 虚拟交易网站开发高密网站制作
  • 掏宝网网站建设评价表如何建一个公司网站
  • 网站cms模板手机微信网页版
  • 西安学校网站建设多少钱榆林尚呈高端网站建设
  • 网站设计公司哪家学校网站建设都是谁做的
  • 网站建设方向论文提纲商城网站建设视频
  • 有创意营销型网站建设电子商务网站建设规划的内容
  • 一般做网站的宽度怎么处理的深圳华强北现在能去吗
  • 网站的开发工具有哪些西安网络推广优化培训
  • 水果网站建设计划书wordpress 短标签
  • 做网站导出用什么色彩模式广西玉林网站建设
  • 正规的企业网站建设铜陵县住房和城乡建设局网站
  • 网站建设怎么添加背景音乐wordpress 5.2.1英文转中文
  • 深圳网站建设 公司元wordpress 免密码破解