综合

javaweb总结心得

时间:2010-12-5 17:23:32  作者:探索   来源:知识  查看:  评论:0
内容摘要:刚接触JavaWeb那会儿,我以为会写Servlet和JSP就算入门了。直到自己独立做一个管理系统,才发现事情远没那么简单。前后端的数据怎么传、页面怎么跳、用户状态怎么保持——这些问题在课本上都是分开

刚接触JavaWeb那会儿,结心我以为会写Servlet和JSP就算入门了。结心直到自己独立做一个管理系统,结心才发现事情远没那么简单。结心前后端的结心数据怎么传、页面怎么跳、结心用户状态怎么保持——这些问题在课本上都是结心分开讲的,真放到一个项目里,结心全搅在一起。结心

最开始写登录功能,结心我用JSP往页面里嵌Java代码,结心`<% out.println(user.getName()); %>` 这种写法满屏都是结心。能跑,结心但改一个字段名就要翻好几个文件。结心后来换成Servlet加JSP,结心Servlet负责处理请求,JSP只管展示。这算是第一次体会到MVC的意思。不过JSP里还是免不了写一些判断逻辑,比如根据用户角色显示不同的菜单。直到用了JSTL和EL表达式,页面才干净下来。

数据库连接这块,我踩的坑最多。一开始每个Servlet里都写一遍`DriverManager.getConnection()`,代码重复不说,连接数一多数据库就报错。后来学了连接池,用Druid配好参数,才算稳了。但连接泄漏的问题又冒出来——有次测试时发现跑了一晚上,数据库连接数满了。查了半天,原来是某个Servlet里`finally`块忘了关`ResultSet`。这种低级错误,不亲自踩一次根本记不住。

Session和Cookie的区别,书上讲得清楚,但实际用起来才知道什么时候该用哪个。用户登录状态我放在Session里,购物车数据我一开始也放Session,结果服务器重启就全没了。后来改成Cookie存一个token,后端查Redis,才算解决了持久化的问题。这里还涉及跨域,前端用axios发请求,后端要配CORS,不然浏览器直接拦掉。这些配置项,文档里都有,但组合在一起就是各种报错。

框架这块,我一开始抵触Spring,觉得配置太繁琐。后来硬着头皮搭了一个SSM项目,XML写了一大堆,但确实比纯Servlet好维护。再后来用SpringBoot,一个`application.yml`搞定大部分配置,内嵌Tomcat直接跑,开发效率高了不少。不过自动配置也有坑,比如默认的JSON解析器对日期格式的处理,不自定义的话前端拿到的时间戳完全没法看。

前端交互方面,Ajax是绕不开的。我用jQuery的`$.ajax`写了大量请求,后来换成axios,Promise链式调用确实清爽。但跨域、请求头、响应格式这些细节,每次都要调半天。有次后端返回的JSON里字段名是下划线风格,前端用的驼峰,数据死活绑不上。后来统一用`@JsonProperty`注解解决了,这种问题不遇到一次根本想不到。

项目部署上线那天,我印象很深。本地跑得好好的,放到服务器上就报404。查了半天,是Tomcat的`webapps`目录权限问题。还有一次,数据库密码在本地是明文,上线后忘了改,结果连接失败。这些运维层面的东西,写代码时根本不会考虑,但上线时全是拦路虎。

回头看我写的第一个JavaWeb项目,代码结构混乱,但跑起来了。现在再写,会先画一下模块划分,想清楚哪些用Filter拦截,哪些用AOP处理。技术这东西,光看教程没用,必须自己动手搭一遍,报几次错,才能真记住。JavaWeb涉及的面太广,Servlet、JSP、JDBC、框架、前端交互、部署,每一块都能单独写一本书。但核心思路其实就一条:把请求处理好,把数据存对地方,把页面渲染出来。剩下的,都是在这条主线上不断填坑。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap