Jetty+Servlet+Jsp+MySQL+MyBatis 简单博客网

前言

本网站没有采用主流的Spring、SpringMvc或者SpringBoot等Web框架,而是使用Servlet和Jsp,旨在熟悉和理解JavaWeb的基础原理和用法。通过该项目能辅助学习相关知识。

相关技术简介

Servlet

Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容。Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。目前Servlet规范最新的版本是4.0。

Jetty:

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

JSP:

使用Servlet产生动态网页,需要在代码中打印输出很多HTML的标签。此外,在Servlet中,我们不得不将静态显示的内容和动态产生内容的代码混合在一起。JSP是一种建立在Servlet规范功能之上的动态网页技术。和ASP类似,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过JSP文件中嵌入的是Java代码和JSP标记。JSP文件在用户第一次请求时,会被编译成Servlet,然后再由这个Servlet处理用户的请求,所以JSP也可以看成是运行时的Servlet。

指令:以<%@开始%>结束的就是指令。在JSP中常用的指令有三个page指令、taglib指令、import指令

注释:以“<%--”以“--%>”结束,中间则是注释的内容,在JSP中注释有两种,一种是JSP注释,一种是HTML注释,其中JSP注释不会响应的浏览器,但是HTML注释会响应到客户端浏览器。

脚本:以<%开始,以%>结束,中间则是我们要书写的Java代码或者业务逻辑。
声明:以“<%!”开始,以“%>”结束,中间则可以定义方法、类等内容
表达式:<%=%>则是向页面中输出变量,等价于out对象的write()方法。
模板:模板其实就是在JSP中的HTML
JSP生命周期:JSP容器管理JSP页面生命周期的两个阶段:转换阶段(translation phase)和执行阶段(execution phase)。
JSP内置对象:
JSP内置对象是指在JSP中不需要实例化即可直接使用的对象。

内置对象

描述

application

ServletContext的实例

config

ServletConfig的实例

exception

获取出现异常时的信息

out

jsp的输出流对象

page

指向当前jsp的对象

pageContext

jsp的上下文路径

request

HttpServletRequest的实例,请求对象

response

HttpServletResponse的实例,响应对象

session

HttpSession的实例,会话


JSP作用域:

名称

作用域

application

在所有应用程序中有效

session

在当前会话中有效

request

在当前请求中有效

page

在当前页面有效

请求转发和重定向:
请求转发和重定向的作用都是用于跳转web资源,但是二者是存在区别的。
下面的两个示例分别演示的用请求转发和重定向跳转资源:
在请求转发中,客户端浏览器请求JSP或者Servlet,当JSP或者Servlet接收到请求后,将请求转发给其他的JSP或者Servlet,最终由转发后的资源对客户端进行响应。在整个过程中只有1次请求。
在重定向中,客户端浏览器请求JSP或者Servlet,当JSP或者·Servlet接收到请求后会先向客户端响应302状态码及重定向地址,当客户端浏览器接收到该302响应码以后,重新发起一次请求,请求的地址就是服务端伴随这302响应的地址,因此在整个过程中发生了2次请求。
EL表达式:
EL的语法简单,使用方便。所有的EL表达式都是以“${”开始,以“}”结束,在JSP开发中有着大量的使用,通常情况下和JSTL搭配使用。关于JSTL的内容会在下一章节中讲解。
EL内置对象:

内置对象

描述

pageScope

page 作用域

requestScope

request 作用域

sessionScope

session 作用域

applicationScope

application 作用域

param

Request 对象的参数,字符串

paramValues

Request对象的参数,字符串集合

header

HTTP 信息头,字符串

headerValues

HTTP 信息头,字符串集合

initParam

上下文初始化参数

cookie

Cookie值

pageContext

当前页面的pageContext


 JSTL:
JSTL(JSP Standard Tag Library),规范由Sun公司制定,Apache的Jakoarta小组负责实现,JSTL的目标是为了简化JSP页面的设计。

Maven简介:

是 Apache 下的一个纯 Java 开发的开源项目,Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。


wangEditor

是一款基于 javascript 和 css 开发的 Web 富文本编辑器, 轻量、简洁、易用、开源免费。

2. 系统功能模块
2.1 前台系统功能描述
   用户登录注册功能:包括用户的注册、登录。

   用户发表博客功能:普通游客只能浏览博客,注册登录后可完成发表博客、修改博客、删除博客等功能。

   用户评论功能:普通游客只能浏览留言,注册登录后可完成对博客的评论操作。

   用户留言功能:游客和注册用户都能完成留言。

   用户信息修改功能:用户在登录状态下,可以对自己的信息进行修改。

后台系统功能描述

用户信息管理:

管理员在登录状态下,可对已经注册的用户数据删除、修改密码、修改状态等操作。

博客管理:

管理员可以对用户发表的博客进行查找、审核、推荐、删除、查看。

评论管理:

管理员可以对用户发表的评论进行查找、删除、查看。

留言管理:

管理员可以对用户留言进行查看和删除,管理员可以作为普通用户登录系统。

页面展示


前台首页:


自适应布局 :

用户注册:

用户登录:

发表博客 :

 
阅读博客:

用户管理:


博客管理:

 留言管理:


源码链接

点击下载源码

本网站使用jetty容器,启动方法如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好教员好

您的鼓励是我前进动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值