```html JavaHTMLCSS初学者网站 从一行报错开始:我的网站第一个JavaWeb页面 你打开记事本,敲下 <html><body>Hello</body></html>,网站保存成 index.html,网站双击——浏览器里跳出一行黑字。网站这时候你觉得自己已经会HTML了。网站然后你尝试加个按钮,网站点了没反应。网站你听说要写JavaScript,网站又听说Java也能做网站。网站于是网站你打开了IDEA,新建了一个Java项目,网站发现里面根本没有“网页”这个选项。网站这就是网站大多数初学者的真实起点:不是从“学习路线”开始的,而是网站从“这玩意怎么跑起来”开始的。 先别管框架,网站把这三样东西塞进同一个文件夹 我见过太多人卡在第一步:装Tomcat、配环境变量、改端口号。其实你只需要一个文件夹,里面放三样东西。第一,一个 .html 文件,比如 page.html。第二,一个 .css 文件,比如 style.css。第三,一个 .java 文件,比如 Hello.java。对,就这么简单。HTML负责骨架,CSS负责皮肤,Java负责在后台算点东西——比如你点按钮的时候,它去读个文件或者算个加法。初学者最容易犯的错是把Java当成HTML的替代品,其实它们连运行的地方都不一样。HTML跑在浏览器里,Java跑在服务器上。你本地开发的时候,服务器就是你的电脑。 那个CSS选择器,你写错一个点就全白干 我教过一个人写CSS,他写了 div#main { color: red; },页面没变红。查了半小时,发现HTML里写的是 <div id="Main">。大小写。CSS里 #Main 和 #main 是两个东西。这种错误不会报错,只会沉默。另一个常见坑:. 是class,# 是id。你写 .header 但HTML里是 id="header",样式就是不生效。我的建议是初学阶段全部用class,别碰id。class可以重复用,id只能出现一次,而且优先级还高,容易把自己绕进去。CSS的盒模型也够喝一壶:你设了 width: 200px,结果元素占了240px,因为 padding 和 border 默认加在外面。加一句 * { box-sizing: border-box; } 能省下你两小时的困惑。 Java那边,别急着学Spring 你搜“Java网站开发”,前十条结果有八条在讲Spring Boot。那东西很好,但不适合第一天。你连 HttpServletRequest 和 HttpServletResponse 都没摸过,直接上注解和自动配置,等于还没学会走路就去跑马拉松。我建议你先写一个最原始的 Servlet。继承 HttpServlet,重写 doGet,里面写 response.getWriter().println("<h1>Hi</h1>");。然后去 web.xml 里配一下映射。跑起来之后,你访问 localhost:8080/hello,浏览器里出现那个Hi。这时候你才真正理解:Java负责生成HTML字符串,浏览器负责显示。就这么回事。Servlet API是地基,Spring只是在地基上盖的楼。地基没打,楼塌是迟早的事。 一个能跑的小项目长什么样 我让一个初学者做过这个:一个待办清单。HTML里一个输入框、一个按钮、一个 <ul>。CSS把按钮弄成蓝色圆角,列表项加个删除线。Java那边写一个 TodoServlet,接收POST请求,把待办内容存进一个 ArrayList,然后重定向回页面。页面加载时,Servlet再把列表里的内容拼成 <li> 标签输出。没有数据库,没有框架,没有Maven。就一个 WEB-INF 文件夹,里面放 web.xml 和 classes。他花了三个晚上做出来,中间遇到乱码问题——中文变成问号。原因是 response.setContentType("text/html;charset=UTF-8") 写在了 getWriter() 之后。顺序反了。这种细节,任何教程都不会专门告诉你,但你一定会遇到。 别收藏了,打开记事本 你手机里存了二十篇“JavaWeb从入门到精通”,电脑里下了三个版本的Eclipse。没用的。打开记事本,写一个 <h1>,保存成 .html,双击。然后新建一个 .css,用 <link> 引进去。再然后,去Oracle官网下个JDK,装个Tomcat,把 .java 编译成 .class,丢进 webapps 里。你会报错,会看到404,会看到500。那又怎样。报错信息比任何教程都诚实。它告诉你哪一行不对,哪个类找不到。你改一行,刷新一次。改十次,你就记住了。网站不是“学”出来的,是“改”出来的。 ``` |