网站开发教程pdf,用来制作网页的软件是,网站续费,企业站seoSpringBoot系列文章目录
SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录[TOC](文章目录) SpringBoot技术很多很多工作之初#xff0c;面临JSP的老项目我要怎么办环境及工具#xff1a;项目里可能要用到的技术JSPjstl其它的必要知识 上代码WE…SpringBoot系列文章目录
SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录[TOC](文章目录) SpringBoot技术很多很多工作之初面临JSP的老项目我要怎么办环境及工具项目里可能要用到的技术JSPjstl其它的必要知识 上代码WEB 层Controller代码后台进JSP页面这一次要先看controller类 最后的展示总结配套资源
SpringBoot技术很多很多
本文讲的是属于mybatis 分支下企业实用的技术分页技术
工作之初面临JSP的老项目我要怎么办
现在不管是培训的还是在学校的学习的还是自己通过视频学习的 好象基本上全是统一流springBoot 了吧然后实习期就接手这样的东西你只会springBoot 呀。 选择1 此处不留爷自有留爷处选择2 拿起你的笔记本拯救这个公司获得升职加薪秘籍一份选择3 回家躺平继续打游戏闯关
环境及工具
本系列环境
环境win7/win11工具idea 2017.1/idea 2018.2jdk1.8数据库mysql5.5maven3.2.1项目导入方式maven 导入数据库前端工具mysql-front (navicat 也可以)
说明一下。这样的项目因为使用了JSP页面所以还是需要商业版的非社区版 功能不同IDEA商业版是java语言开发的集成环境IntelliJ在业界被公认为最好的java开发工具之一主要功能为智能代码助手、代码自动提示、重构、J2EE支持idea社区版的主要功能为Ant、JUnit、CVS整合、代码审查、 GUI设计。
数据库前端工具mysql-front (navicat 也可以) 主要是这些跟PHPStudy 2018 整合了所以有的时候懒的打开navicat 关于环境的重要性直接看上面的《SpringBoot 的项目编译即报错处理–JSB系列之001》
项目里可能要用到的技术
JSP
这是一个好技术。JSP全称Java Server Pages是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上可以响应客户端发送的请求并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页然后返回给请求者。JSP技术以Java语言作为脚本语言为用户的HTTP请求提供服务并能与服务器上的其它Java程序共同处理复杂的业务需求。 JSP将Java代码和特定变动内容嵌入到静态的页面中实现以静态页面为模板动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签用来调用内建功能。另外可以创建JSP标签库然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet然后再由Java编译器来编译成能快速执行的二进制机器码也可以直接编译成二进制码。 1997 年Sun 公司推出了 Servlet。 由于当时的 Java Web 层体系结构中只有 Servlet所以接收用户请求、处理业务逻辑、生成 HTML 代码等都在 Servlet 中完成。Servlet 不能像 PHP、ASP 等语言镶嵌 HTML 代码因此输出 HTML 比较困难且部署过程复杂。为了克服 Servlet 的这些弱点1999 年初Sun 公司推出了 JSP。 统治JAVA开发领域20余年就是到了今天在各大高校仍然随处可见
jstl
JSP1.2不支持EL但可以使用外部的JSTL标签以便使用EL。 JSTLJava server pages standarded tag library即JSP标准标签库是由JCPJava community Proces所制定的标准规范它主要提供给Java Web开发人员一个标准通用的标签库并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码从而提高程序的可读性降低程序的维护难度。 JSTL的优点如下 1、简化了JSP和Web应用程序的开发。 2、在应用程序服务器之间提供了一致的接口最大限度地提高了·Web应用在各应用服务器之间的移植。 3、允许JSP设计工具与Web应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现。 4、以一种统一的方式减少了JSP中的Scriptlets代码数量可以达到程序中没有任何Scriptlest代码。 IT技术发展如此迅猛的今天2023年各大高校里还有JSP课程还有使用JSTL就可见生命力多强设计的多先进了。
其它的必要知识
网页三剑客这个不用说了JAVA你总得会idea吧maven 这个也是必须的 JAVA方面的知识真的挺多多了解了解之前的知识与设计这对于你在这个行业有着巨大的好处不断的从前人的思想里汲取营养。这才是走向大牛的正确道路
上代码
说了这么多了还是上点正菜。 还是要先看整体代码结构。
这一次要先上页面了。
WEB 层
% page contentTypetext/html;charsetUTF-8 languagejava pageEncodingUTF-8 %
% taglib urihttp://java.sun.com/jsp/jstl/core prefixc %
% taglib urihttp://java.sun.com/jsp/jstl/fmt prefixfmt %
% taglib urihttp://java.sun.com/jsp/jstl/functions prefixfn %
c:set varctx value${pageContext.request.contextPath}/
%--判断是否有错误消息--%
c:if test${msg!null}scriptalert(${msg});/script
/c:if
!DOCTYPE html
html
headtitle**信息管理系统/titlemeta http-equivContent-Type contenttext/html; charsetutf-8/meta nameviewport contentwidthdevice-width, initial-scale1link href${ctx}/static/css/style.css relstylesheet typetext/css/%--设置ico图标--%link relshortcut icon href${ctx}/favicon.png typeimage/x-icon/link relicon href${ctx}/favicon.png typeimage/gif
/head
body stylebackground: url(${ctx}/uploads/bg55.jpeg);background-position: center center;background-size: cover;
div classmaindiv classloginh1管理员登录/h1div classinset!--start-main--form action${ctx}/admininfo/login methodpostdivh2**信息管理系统/h2spaninput typetext placeholder请输入用户名 valueadmin nameusername classtextbox/span/divdivspaninput typepassword placeholder请输入密码 value123456 namepasswordclasspassword/span/divdivspana href${ctx}/index返回首页/a/span/divdiv classsigninput typesubmit value登录 classsubmit//div/form/div/div!--//end-main--
/div/body
/html
要注意的是这里
form action${ctx}/admininfo/login methodpost登陆的后台
Controller代码 为了更清晰的看到关系。这里还是放一张图片好了。 看这里。不是那小姑娘的虎牙是这个类的映射地址。 这里的知识点可以参见《SpringBoot 的项目helloworld–JSB系列之002》 这样就可以清楚的看到springBoot 的这部分页面》后台跟springMVC 无差别就是正常的取request。
Controller 调service Mapper啥的就不用多说了这个要是不知道的话那就需要看《JSB系列》了。
后台进JSP页面
这一次要先看controller类
package com.code.controller;import com.baomidou.mybatisplus.plugins.Page;
import com.code.entity.Userinfo;
import com.code.mapper.UserinfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/*** 后台userinfo表的管理操作用户管理*/
Controller
RequestMapping(/userinfo)
public class UserinfoController {Autowired //注入对象private UserinfoMapper userinfoMapper;RequestMapping(/add)public String toAdd(Model model) {return userinfo/userinfoAdd;}RequestMapping(/insert) //插入数据public String save(Userinfo userinfo) {userinfoMapper.insert(userinfo);return redirect:list;}RequestMapping(/update) //修改数据public String update(Userinfo userinfo) {userinfoMapper.updateById(userinfo);return redirect:list;}RequestMapping(/delete) //删除数据public String save(int id) {userinfoMapper.deleteById(id);return redirect:list;}RequestMapping(/edit) //编辑数据public String edit(int id, Model model) {Userinfo userinfo userinfoMapper.selectById(id);model.addAttribute(userinfo, userinfo);return userinfo/userinfoUpdate;}RequestMapping(/detail) //编辑数据public String detail(int id, Model model) {Userinfo userinfo userinfoMapper.selectById(id);model.addAttribute(userinfo, userinfo);return userinfo/userinfoDetail;}/*** param keyword 搜索关键词* param p 页面 默认第1页* param pageSize 每页显示条数 默认每页10条* param model* return*/RequestMapping(/list) //分页查询数据public String list(String keyword, Integer p, Integer pageSize, Model model) {p null p ? 1 : p; //默认显示第一页pageSize null pageSize ? 10 : pageSize; //默认每页显示10条PageUserinfo sortPage new PageUserinfo(p, pageSize);//参数一是当前页参数二是每页个数ListUserinfo userinfoList userinfoMapper.selectPage(sortPage, null);long total sortPage.getTotal(); //总页数int current sortPage.getCurrent();long pages sortPage.getPages();model.addAttribute(userinfoList, userinfoList); //绑定接受参数model.addAttribute(cp, current); //当前页model.addAttribute(tp, pages); //总页数model.addAttribute(total, total); //总条数model.addAttribute(pageListURL, userinfo/list); //总条数return userinfo/userinfoList;}
}
要注意的 RequestMapping(“/insert”) //插入数据 public String save(Userinfo userinfo) { userinfoMapper.insert(userinfo); return “redirect:list”; } RequestMapping(“/update”) //修改数据 public String update(Userinfo userinfo) { userinfoMapper.updateById(userinfo); return “redirect:list”; } RequestMapping(“/delete”) //删除数据 public String save(int id) { userinfoMapper.deleteById(id); return “redirect:list”; } 还是上代码这样方便的看到对应的关系 可以看出来这就是纯的JSP的页面。 就是用form提交没有ajax ,没有jquery 当然更不可能VUE了。 再看用户信息的编辑功能也如此 把后台的controller 与JSP的放一起这样看起来就更明显了。 虽然看上去有点生涩但是熟练了之后就好了。 妥妥的就是JSP jstl EL 表达式“老牛” 吃SpringBoot 的“嫩草” 当然了要是能深研一下官方的SpringMVC 的流程图就更清楚了。
当然了还有列表但是这里又用到了另一个“新功能” 就是mybatis 分页技术与页面的分页技术。 这个跟ajax 与jquery的方式还有点不一样所以这里不深入讨论了这个功能留作下期了。
再看一下项目的application的代码没有使用 yml
#运行端口号
server.port8889
#配置项目路径
server.servlet.context-path/mgPerson
#数据库连接配置信息 Ctrl/ 注释
#mysql8驱动
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
#mysql5驱动 记得把连接地址换成本机ip地址
#spring.datasource.driver-class-namecom.mysql.jdbc.Driver
spring.datasource.urljdbc:mysql://127.0.0.1:3306/jsbperson_db?characterEncodingutf-8useSSLfalseserverTimezoneGMT
spring.datasource.usernameroot
spring.datasource.password123456
#mybatis配置
mybatis.type-aliases-packagecom.code.entity
#mybatis.mapper-locationsclasspath*:mapper/*.xml
mybatis-plus.mapper-locationsclasspath*:mapper/*.xml
#jsp视图解析器
spring.mvc.view.prefix/view/
spring.mvc.view.suffix.jsp
#文件上传的配置
spring.servlet.multipart.max-file-size120MB
spring.servlet.multipart.max-request-size120MB
#开启日志调试
#logging.level.rootdebug
#显示mybatis日志
logging.level.com.code.mapperdebug
这里有一个重点 #jsp视图解析器 spring.mvc.view.prefix/view/ spring.mvc.view.suffix.jsp 下面是一个其它人的springMVC 的项目。当然了也是老项目历史的遗留产物。 通过application.properties定制InternalResourceViewResolver初始化 在返回视图名称之后会以前缀prefix和后缀suffix以及视图名称组成全路径定位视图 比如控制器返回的是food/details就会找到/WEB-INF/jsp/food/details.jsp作为视图 在webapp/WEB-INF/jsp/food目录下添加jsp页面JSP视图 视图解析器定位到视图后视图的作用是将数据模型Model渲染响应用户请求 最后的展示
用idea 直接运行。 为什么这个项目可以这么随意因为他没有token ,没有 spring security 呀所以肯定可以直接访问后台了。有如罗大佑老师唱的“穿过你的黑发的我的手” 就是这么的随意漂亮任性。 项目效果 主页这里换了一个页面 后台的管理登陆界面 后台的主界面各增删改查功能OK
好一步成功点亮关电拉闸领盒饭走人。
总结
提示IT是一个要多动手的职业一定要多练不要贪快 这里就可以看出来理解了JAVAWEB经历了SpringMVC 的人拿到SpringBoot 更像是如虎添翼兰博拿到了火箭筒。 所以程序猿与学员纯在着本质的差别。那么如何提高呢当然要多读别人的成功项目了。 GITEE上面存在着大量的springboot的项目英文没有问题的话可以去github。
配套资源
SpringBoot接手JSP项目–【JSB项目实战】 https://download.csdn.net/download/dearmite/88131591 如果有问题留言评论区吧