Java Web应用程序在JVM中的执行过程
Java Web 应用开发完成,编译打包后得到一个 War 包,将这个 war 放入到 Tomcat 容器路径下,启动 Tomcat 就可以通过 HTTP 访问这个 Web 应用了。
Java Web 应用是被 Tomcat 加载运行的,所以也称 Tomcat 为 Web 容器。
Java Web 应用开发完成,编译打包后得到一个 War 包,将这个 war 放入到 Tomcat 容器路径下,启动 Tomcat 就可以通过 HTTP 访问这个 Web 应用了。
Java Web 应用是被 Tomcat 加载运行的,所以也称 Tomcat 为 Web 容器。
防止表单重复提交网上有很多文章描述了和解决方案,这里做个汇总。另最近的项目在重复提交上出现了较少见的情况,做个记录。
JSP 页面中经常用到EL
表达式和JSTL
标签库。
EL
表达式主要作用:获取数据,执行运算,获取Web常用隐式对象。
EL
表达式以${}
结构表示;取值从左到右,如果需要文件${
,在前面加转义符\${
。
四大作用域的作用是为了实现页面和服务器共享数据。
page
:设置的属性令在当前页面有效。实际开发中较少使用,作用域太小了。request
:属性仅在本次请求有效。session
:令在浏览器和服务进行本次会话有效,当和服务器断开后,属性失效。application
:属性在整个WEB应用中都有效,直到服务器停止才失效。实际开发中几乎不使用,作用域太大了。 四大作用域分别都有设置和获取属性的两个方法:setAttribute()
、getAttribute()
问题描述:
jsp
文件放在src/main/resources/jsp/
目录,Maven
配置的是Tomcat7
服务器插件,通过Maven build
运行后,访问该项目,浏览器报404
错误,但 SpringMVC没有报错,打印显示的映射路径和转发到的物理视图都无异常。 war
包布署到Tomcat7 和 8
服务器上运行,浏览器或以正常访问到src/main/resources/jsp/
目录下的jsp
文件。jsp
移到webapp/WEB-INF/jsp/
目录下,修改视图的物理路径的前辍到该目录,使用Maven build
运行,浏览器访问正常。因素排除:
此问题还未找到具体原因,未能解决
报错:访问Maven
管理的SpringMVC
项目jsp
页面,错误:at org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspInit(index_jsp.java:31)
原因:是项目的servlet-api
或jsp-api
两个jar
包与Tomcat
自带的包冲突导致。
解决:在pom.xml
文件,将这两个jar
包添加<scope>provided</scope>
控制,只在编译和测试有效。
web.xml
文件配置:
springmvc.xml
文件:配置监听器,指定文件路径。 JSP 在使用forEach
标签时报错:According to TLD or attribute directive in tag file, attribute items does not accept any expressions。
原因:web.xml
的web-app_2_5.xsd
版本大于2.3
,需要使用jstl
的扩展标签。
解决:jsp
文件引用的jstl core
标签库改为扩展标签库,
将:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
替换成:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
。
差异:2.5版本可以根据索引 ID 取出 List 里的单个值, 2.3版本就不行。
1 | <body> |
汇总 SpringMVC 传参给到 JSP ,JSP 使用 JSTL
表达式取值来显示的各种方式。
JavaWeb 开发遇到各种中文乱码,现统一整理出相应的解决方法。
前提要求是项目工程统一使用UTF-8
编码。