当前位置:网站首页 > Java教程 > 正文

Java Web项目开发教程



本篇文章仅供参考。如果您遇到了问题,建议自己使用英文进行google搜索。而不是当一个不经过自己努力和思考的伸手党

本文章以前在CSDN发布:点此查看

2021/02/24更新:仅做参考,建议学习SpringBoot。

说明1:只是实现了简单的操作,但是逻辑并不严谨(比如并没有进行密码的加密,也没有进行对不规范字符串的判断),仅适合新手,望注意。
说明2:这个项目是在我的macbookpro上运行的。windows用户的环境配置可能不一样。望注意
前提:正确建立了一个javaweb项目(web项目建立教程)

开发环境与工具

  1. IntelliJ IDEA 2018.3.3(Ultimate Edition)(Mac版本)
  2. Mysql Workbench8.0
  3. jdk11
  4. Tomcat for mac ( 安装教程 )

工具包
添加下包三个jar包,放到lib文件夹中。 jar包链接
密码:rglh
在这里插入图片描述
功能说明

  1. 用户登录
  2. 新用户注册
  3. 用户列表展示
  4. 用户信息删除
  5. 用户信息更新

操作步骤

  1. 在mysql建立一个新表Student,里面有name,password,id(为了简化操作,所以只有三列并且都是String类型)
 
  1. 插入数据
 
  1. 打开intellij新建一个javaweb项目,具体操作参考我的博客
  2. 导入连接数据库的jar包,具体操作参考我的博客 intellij导数据库jar包
  3. 建立对应的包结构
    filter //过滤器,解决中文字符集乱码
    util //数据库连接工具类
    entity //实体类
    dao //数据操作类
    servlet //servlet类
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019031619130537.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1cm9uZzMzMzMz,size_16,color_FFFFFF,t_70
  4. 在filter下新建一个EncodingFilter用来解决中文字符集乱码,它需要实现Filter接口,并重写doFilter函数
 
  1. web.xml的全部配置信息
 
  1. 在util下新建一个DBconnect类用来处理对数据库的连接操作(用户名或密码按照自己的数据库更改)
 
  1. 在entity下新建一个MyUser实体类(实体即抽象出来的用户对象,对应数据库中的Student表,表中每个字段在实体中为一个属性,也可以理解为一个User对象对应数据库中的Student表一条记录)
 
  1. 在dao下新建一个UserDao接口 以及对应的方法实现类(使用接口类是为了规范开发)

UserDao类

 

UserDaoImplement类

 
  1. 在servlet下创建loginServlet用来实现对用户登录的操作
 
  1. 在servlet下创建一个registerServlet用来实现用户注册的操作
 
  1. 在servlet下创建shouAllServlet用来返回数据库中所有用户信息
 
  1. 在servlet下创建updateServlet用来更新用户信息(在此仅仅根据id来更新用户姓名,逻辑性很弱
 

补充:在servlet下创建deleteServlet用来删除用户信息

 
  1. 新建各种jsp页面

login.jsp

 

success.jsp

 

register.jsp

 

showAll.jsp

 

addUpdateDeleteFail.jsp

 

addUpdateDeleteSuccess.jsp

 

操作截图

  1. 开启Tomcat,运行login.jsp,展示首页
    在这里插入图片描述
  2. 输入名字001与密码123,登录成功进入loginServlet,点击查看所有用户,显示用户信息
    在这里插入图片描述
    在这里插入图片描述
  3. 点击删除,若是删除成功则返回所有用户列表,否则返回addUpdateDelete.jsp(这里不展示删除具体的例子)
  4. 在首页点击注册,进入注册页面,注册007,注册完成会返回登录页面
    在这里插入图片描述

遇到的问题以及解决方式

问题1
在showAll.jsp页面中显示了所有数据库的数据,但是删除或者更改其中的一个数据,再想返回修改数据之后的当前页面,就会出现错误。

问题症结所在:jsp页面回显数据

分析:前端提交数据,主要有两种方式。from表单与ajax异步提交。两种方式都可以提交数据到后台。但是想让后台数据返回当前页面显示的话,在不刷新整个页面的前提下,就需要使用ajax,因为ajax可以实现异步刷新

解决方式:在此转换了一个思路。删除或者更新之后,先跳转到addUpdateDeleteSuccess.jsp,这个jsp界面有个按钮链接可以跳转到showAll.jsp界面,然后再显示所有用户的信息(其实使用ajax解决也是ok的)

问题2:端口1099被占用
解决方式:
1) 在mac终端输入lsof -i tcp:1099,查看是哪个进程占用1099
2) 知道是进程80049占用
输入sudo kill -9 80049,即可解决问题
在这里插入图片描述
问题3
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
解决:
将数据库连接的jar文件导入到工程的web/WEB-INF/lib中(查询连接https://blog.csdn.net/mayuko2012/article/details/)

问题4:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column...

分析:出现这个异常的很大可能性是 数据库是没有问题的!关键原因是:你从传过来的参数是String类型的,我们在操作数据库时String类型的参数必须要用' '把参数引起来才能传递并接收! 例如rs=stmt.executeQuery("select * from userinfo where userid = '"+ID+"'");ID是String类型,在进行数据库操作时,千万不要漏了两边的单引号,切记 !!!常错点!!!

问题5:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException异常,
解决:一般都是自己的sql语句写错了(仔细查找错误)。

问题6:org.apache.jasper.JasperException: javax.el.ELException: Failed to parse the expression [${}]
分析:没有jstl标签库
操作:在lib文件夹添加相关的jar。文章开头已给出。

感想

  • 报错的信息,可以直接粘贴,google一下,很多问题都可以找得到答案。
  • google问题时候,比较考验自己的筛选能力。很多博文写的真的是只有自己能看懂,所以我在找错的时候花了很多的时间
  • 有条件一定要FQgoogle,百度真的是会浪费你的时间。买个一年的服务器也就是百来十块钱,但是自己的时间一定是可以节省很多的。
  • 多上github,StackOverflow,多用google。
  • 有一个bug我改了三天,都变佛系了。改了一天没结果,我就第三天再继续刚。
  • 有个27寸的显示器真的能让你多坐在座位上打码
  • 初级选手的话,数据库的表尽量设计得简单,不然很麻烦
  • 打码更多需要的是耐心与坚持

  • 上一篇: 慕课网java教程
  • 下一篇: java合适的教程书
  • 版权声明


    相关文章:

  • 慕课网java教程2025-01-14 15:34:06
  • java se 8教程2025-01-14 15:34:06
  • java视频制作教程2025-01-14 15:34:06
  • 自学java视频教程2025-01-14 15:34:06
  • java对接教程2025-01-14 15:34:06
  • java合适的教程书2025-01-14 15:34:06
  • java屏保教程2025-01-14 15:34:06
  • java教程开发方向2025-01-14 15:34:06
  • java 英语教程有声2025-01-14 15:34:06
  • java淘宝客教程2025-01-14 15:34:06