Servlet/JSP实战教程:搭建博客系统

By Ricky 课程任务:16 个 学习人数: 100+

可能是最简单易学的Servlet和JSP开发入门教程,结合开发实例,深入浅出地介绍学习Servlet的基础、JSP的基本语法、JSTL、JSP表达式语言(JSP EL)、Cookie、Session和过滤器(Filter)等核心知识。打造一个动态网站所需要掌握的都在这里了。

超级名师

导师来自北京大学计算机专业的老师和业界一流的工程师,帮助你快速成长

求职必备

导师们最大的烦恼就是每天各路公司求他们推荐程序员,快到碗里来

实战导向

图文、代码与视频有机结合的实战课程内容,打造真实的项目,最佳实践一网打尽

专业工具

随时随地在线学习,记录完整的学习过程与轨迹,沉淀终生受益的代码和内容

课程简介

  • JSP和Servlet的基本原理
  • JSP表单处理
  • JSTL的使用
  • Session和Cookie
  • 创建MVC应用

David

北大教师,曾创办OSGi中文社区和软件开发协工具onboard

Ricky

天码营技术总监,全栈程序员, DevOps,超级工具控

Harttle

北大物理系出身的Linux极客,追求极致简单,武术发烧友

Cliff

传说中的快刀手,北大计算机应用与设计协会前理事长

Michael

Google工程师,北大信息科学技术学院本硕

Bob

Facebook工程师,北大信息科学技术学院本硕

Hash

北大数字艺术专业毕业,十年设计经历,极限运动爱好者

Li

任职于Twitter、Airbnb,德州扑克世界赌王大赛冠军

登录发表评论 登录 注册

小刘同学
小刘同学 于 1 个月前

也就是设置一个默认值,不至于最后输入为null。这样的空值。

<c:out>

不如为null的话,默认设为/blog

这句话什么意思

@stetina

小刘同学
小刘同学 于 1 个月前
<c:out value="{blog.url}" escapeXml="true" default="/blog" />

这表示会将会将博客的URL地址进行escape操作,如果为null的话,默认设为/blog


value="{blog.url}"  这里是不是少了一个$.  应该是value=“${blog.url}”
Jayden
Jayden 于 2 个月前

第二课,提交了代码,测试不通过,显示

com.gargoylesoftware.htmlunit.html.HtmlPage cannot be cast to com.gargoylesoftware.htmlunit.TextPage

但我在本地运行是能正常输出时间的。

cser
cser 于 3 个月前

可以用Tomcat Manager查看,从localhost:8080可以进去

怎么查看有没有部署成功?代码是怎么体现路径的呢?代码是直接从教程里复制粘贴过来的,好像除了/helloworld以外就没有其它有关路径的东西了。

@bill_ion  可能没有部署成功。另外可能你的context path(/blog) 或者Servlet路径(/helloworld)和代码中的设置有差别。

@Toder

@bill_ion

bill_ion
bill_ion 于 3 个月前

怎么查看有没有部署成功?代码是怎么体现路径的呢?代码是直接从教程里复制粘贴过来的,好像除了/helloworld以外就没有其它有关路径的东西了。

@bill_ion  可能没有部署成功。另外可能你的context path(/blog) 或者Servlet路径(/helloworld)和代码中的设置有差别。

@Toder

Toder
Toder 于 3 个月前

@bill_ion  可能没有部署成功。另外可能你的context path(/blog) 或者Servlet路径(/helloworld)和代码中的设置有差别。

bill_ion
bill_ion 于 3 个月前

换了台电脑启动tomcat后在浏览器输入localhost:8080不再显示404错误了。但是在部署和运行项目那一步,启动了tomcat服务器但是从浏览器打开却是http status 404-not found:

搜狗截图17年08月07日1051_1.png

看控制台输出,是否有错误信息。另外你可以部署一个项目试试,看是否能访问。

命令行执行也是一样的结果,实在不知道什么原因了。

 在命令行里执行,不要执行双击。

好吧我第一步就过不去了。tomcat下下来解压后,按教程双击startup.bat 启动tomcat,命令行窗口也出来了,但是在浏览器无论输入localhost:8080 还是127.0.0.1:8080 都显示404错误。

@bill_ion

@Toder

@bill_ion

@Toder

bill_ion
bill_ion 于 3 个月前

没有错误信息。现在想先跳过这个部分往下走,但在eclipse中配置tomcat服务器的时候,下拉菜单里没有java se 8。另外,在设置这一步之前有一步选择运行环境类型的(如下图),create a new local server那个复选框要不要打钩?搜狗截图17年08月01日2137_1.png

看控制台输出,是否有错误信息。另外你可以部署一个项目试试,看是否能访问。

命令行执行也是一样的结果,实在不知道什么原因了。

 在命令行里执行,不要执行双击。

好吧我第一步就过不去了。tomcat下下来解压后,按教程双击startup.bat 启动tomcat,命令行窗口也出来了,但是在浏览器无论输入localhost:8080 还是127.0.0.1:8080 都显示404错误。

@bill_ion

@Toder

@bill_ion

@Toder

Toder
Toder 于 3 个月前

看控制台输出,是否有错误信息。另外你可以部署一个项目试试,看是否能访问。

命令行执行也是一样的结果,实在不知道什么原因了。

 在命令行里执行,不要执行双击。

好吧我第一步就过不去了。tomcat下下来解压后,按教程双击startup.bat 启动tomcat,命令行窗口也出来了,但是在浏览器无论输入localhost:8080 还是127.0.0.1:8080 都显示404错误。

@bill_ion

@Toder

@bill_ion

bill_ion
bill_ion 于 3 个月前

命令行执行也是一样的结果,实在不知道什么原因了。

 在命令行里执行,不要执行双击。

好吧我第一步就过不去了。tomcat下下来解压后,按教程双击startup.bat 启动tomcat,命令行窗口也出来了,但是在浏览器无论输入localhost:8080 还是127.0.0.1:8080 都显示404错误。

@bill_ion

@Toder

Toder
Toder 于 3 个月前

 在命令行里执行,不要执行双击。

好吧我第一步就过不去了。tomcat下下来解压后,按教程双击startup.bat 启动tomcat,命令行窗口也出来了,但是在浏览器无论输入localhost:8080 还是127.0.0.1:8080 都显示404错误。

@bill_ion

bill_ion
bill_ion 于 3 个月前

好吧我第一步就过不去了。tomcat下下来解压后,按教程双击startup.bat 启动tomcat,命令行窗口也出来了,但是在浏览器无论输入localhost:8080 还是127.0.0.1:8080 都显示404错误。

大章鱼
大章鱼 于 3 个月前

有一个警告

警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:blog' did not find a matching property.

那URL应该是没错的,看看控制台有没有什么异常?

屏幕快照 2017-07-26 下午5.04.16.png

看一下web.xml

@Toder

@大章鱼

@Toder

Toder
Toder 于 3 个月前

那URL应该是没错的,看看控制台有没有什么异常?

屏幕快照 2017-07-26 下午5.04.16.png

看一下web.xml

@Toder

@大章鱼

大章鱼
大章鱼 于 3 个月前

屏幕快照 2017-07-26 下午5.04.16.png

看一下web.xml

@Toder

Toder
Toder 于 3 个月前

看一下web.xml

大章鱼
大章鱼 于 3 个月前

60DE4913-A252-4BBD-AD5E-EBE755B0512B.png

你所说的context path 是上图中的/blog吗?


你的context path是?

96313810-4A9F-4FBB-9269-09A8603A27DB.png

我都是按照教程来的,tomcat也启动了,在浏览器输入http://localhost:8080/blog/HelloWorld/后浏览器返回404

给的信息太少,无从判断。

老师  我按步骤创建了一个helloworld项目后  最后在浏览器访问却提示无法链接到服务器,请问是怎么回事?

@大章鱼

@Toder

@大章鱼

@Toder

Toder
Toder 于 3 个月前

你的context path是?

96313810-4A9F-4FBB-9269-09A8603A27DB.png

我都是按照教程来的,tomcat也启动了,在浏览器输入http://localhost:8080/blog/HelloWorld/后浏览器返回404

给的信息太少,无从判断。

老师  我按步骤创建了一个helloworld项目后  最后在浏览器访问却提示无法链接到服务器,请问是怎么回事?

@大章鱼

@Toder

@大章鱼

大章鱼
大章鱼 于 3 个月前

96313810-4A9F-4FBB-9269-09A8603A27DB.png

我都是按照教程来的,tomcat也启动了,在浏览器输入http://localhost:8080/blog/HelloWorld/后浏览器返回404

给的信息太少,无从判断。

老师  我按步骤创建了一个helloworld项目后  最后在浏览器访问却提示无法链接到服务器,请问是怎么回事?

@大章鱼

@Toder

Toder
Toder 于 3 个月前

给的信息太少,无从判断。

老师  我按步骤创建了一个helloworld项目后  最后在浏览器访问却提示无法链接到服务器,请问是怎么回事?

@大章鱼

大章鱼
大章鱼 于 3 个月前

老师  我按步骤创建了一个helloworld项目后  最后在浏览器访问却提示无法链接到服务器,请问是怎么回事?

cser
cser 于 3 个月前

检查一下本身的安装目录(链接的源)下有bin目录吗?

我在执行sudo chmod +x /Library/Tomcat/bin/*.sh 时终端提示chmod: /Library/Tomcat/bin/*.sh: No such file or directory  请问要怎么解决?副一张该文件夹截图D0DC8946-077E-4C8D-90DA-93B8368E561C.png

@大章鱼

txwhhny
txwhhny 于 4 个月前

弄不出那个编辑器的效果,怎么整啊

564778568
564778568 于 4 个月前

提示这个The requested resource is not available.

564778568
564778568 于 4 个月前

照教程来不行啊

刘保方
刘保方 于 5 个月前

http://localhost:8080/HelloWorld/这个不是完整的地址吗?还要文件夹?



要输入完整的servlet地址才能看到输出吧。。

@stetina

stetina
stetina 于 7 个月前

<c:out>

不如为null的话,默认设为/blog

这句话什么意思

Wenxuan
Wenxuan 于 8 个月前

这里判断empty的意义是?

if (values != null && !values[0].isEmpty()) {
	//下次自动登录按钮被选中
}
Wenxuan
Wenxuan 于 8 个月前

    下载bootstrap-wysihtml5的JSCSS到本地,并放在WebContent目录下Serve起来(当然也可以直接引用它们的外部路劲)

    错别字~

      Wenxuan
      Wenxuan 于 8 个月前

      参考代码默认情况下访问http://localhost:8080/register提示405错误:

      HTTP Status 405 - HTTP method GET is not supported by this URL

      Wenxuan
      Wenxuan 于 8 个月前

      请教一个问题,实战任务里面,我该如何做能让

      http://localhost:8080/register

      跳转到register.html页面?

      stetina
      stetina 于 8 个月前

      要输入完整的servlet地址才能看到输出吧。。

      Toder
      Toder 于 1 年前

      tomcat自动生成的

      是我理解有误吗,JSESSIONID这个cookie是自动生成然后自动识别的吗?



      具体一点,缺什么东西?

      这里缺东西吧

      @llwwbb

      @Ricky

      @llwwbb

      llwwbb
      llwwbb 于 1 年前

      是我理解有误吗,JSESSIONID这个cookie是自动生成然后自动识别的吗?



      具体一点,缺什么东西?

      这里缺东西吧

      @llwwbb

      @Ricky

      Ricky
      Ricky 于 1 年前

      具体一点,缺什么东西?

      这里缺东西吧

      @llwwbb

      llwwbb
      llwwbb 于 1 年前

      这里缺东西吧

      rabb1105
      rabb1105 于 1 年前

      很好

      Jim111
      Jim111 于 1 年前

      除了2个wysihtml的js和css文件以外,还要配置jquery和bootstrap的js和一些css文件。

      然后还要导入几个webfont字体才能正确显示出那个编辑器的效果。这节内容写得对新手不太友好。

      Toder
      Toder 于 1 年前

      确实写错了,谢谢勘误grin

      写错了吧。“根据HTTP请求生成HttpServletResponse对象并传递给Servlet进行处理”,这里应该是HttpServletRequest吧

      @金子峻 酷毙了

      金子峻 酷毙了
      金子峻 酷毙了 于 1 年前

      写错了吧。“根据HTTP请求生成HttpServletResponse对象并传递给Servlet进行处理”,这里应该是HttpServletRequest吧

      jayypc
      jayypc 于 1 年前

      那么改相对路径的实际访问地址 中 改应该是该

      Dream Van
      Dream Van 于 1 年前

      很不错啊,大家一起交流吧,490524283

      Bruce_Tu
      Bruce_Tu 于 1 年前

      一般代表引入了jQuery,可以参考jQuery教程。

      JSP中的$是什么意思?

      @cser

      sherlocklxf
      sherlocklxf 于 1 年前

      武器二

      Toder
      Toder 于 1 年前

      神马意思?

      ofj

      @licp333

      licp333
      licp333 于 1 年前

      ofj

      jackssir
      jackssir 于 1 年前

      代码clone 下来是空的。

      Toder
      Toder 于 1 年前

      jsp中${}是EL表达式的常规表示方式

      目的是为了获取{}中指定的对象(参数、对象等)的值

      @webmaster

      cser
      cser 于 1 年前

      JSP中的$是什么意思?

      咨询老师