1.JSP中的不同<%%>形式的标签
<%@ %>做说明,通常放在头部
<%! %>写Java代码,在_jspService方法外部
<% %>写Java代码,在_jspService方法内部
<%= %>写Java代码,在_jspService方法内部,通常用于赋值、展示
2.JSP内置对象—-9个
对象所属类型、变量的名字、常用方法都需要了解
内置对象放置在JSP生成的.java代码中的_jspService方法的内部
HTTPServletRequest request
HTTPServletResponse response
HTTPServletSession session
ServletContext application
JSPWriter out
Object page
PageContext pageContext
ServletConfig config
Exception exception
1.HTTPServletRequest
方法 | 返回值 | 作用 |
---|---|---|
request.getParameter(“key”) | String | 用来获取请求携带的参数信息 |
request.setCharacterEncoding(“UTF-8”) | 无 | 用来设置接受请求参数时的字符集 |
request.setAttribute(“key”,Object) | 无 | 用来存储一个值,在另一个地方获取这个值 |
request.getAttribute(“key”) | Object | 用来获取setAttribute()方法存入的值 |
request.getRequestDispatcher(“path”) | RequestDispatcher | 用来设置转发的资源位置 |
requestDispatcher.forward() | 无 | 真正的转发 |
request.getParameterValues(“key”) | String[] | 获取key一致的一组value值,通常用于接收复选框信息 |
request.getRequestURL(); | StringBuffer | Uniform Resource Locator统一资源定位器,例如: http://localhost:8080/JSPBuiltInObject/index.jsp |
request.getRequestURI(); | String | Uniform Resource Identifier统一资源标识符,例如: /JSPBuiltInObject/index.jsp |
如果不知道请求携带的参数名(key)
Enumeration en= request.getParameterNames();
while (en.hasMoreElements()){
String key=(String) en.nextElement();
String value=request.getParameter(key);
}
利用Request实现国际化
知识储备:
Java项目—-不需要Tomcat这种WEB服务器(容器)支持的;而JavaWeb项目—-需要Tomcat支持;执行的最终项目是经过部署编译后的那些程序(Tomcat—->webapps,当前工程的out—->artifacts)**
index.jsp
<%@ page import="java.io.InputStream" %>
<%@ page import="java.io.InputStreamReader" %>
<%@ page import="java.util.Properties" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
</head>
<body>
<%
String acceptLanguage=request.getHeader("Accept-Language");
//注意看格式
System.out.println(acceptLanguage);
String[] languages=acceptLanguage.split(",");
//解析浏览器现在默认支持的第一个语言
String language=languages[0].split(";")[0];
String fileName="font("+language+").properties";
InputStream inputStream=Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
InputStreamReader reader=new InputStreamReader(inputStream);
//读取当前工程内的一个properties文件
Properties properties=new Properties();
properties.load(reader);
String account=properties.getProperty("account");
String password=properties.getProperty("password");
String login=properties.getProperty("login");
%>
<%-- 登录界面--%>
<form>
<%=account%>:<input type="text" name="username" value=""><br>
<%=password%>:<input type="password" name="password" value=""><br>
<input type="submit" value=<%=login%>>
</form>
</body>
</html>
1.
结果
2.
**
结果
知识补充:
浏览器会出现很多 HTTP状态码
状态码 | 错误 | 可能的产生原因 |
---|---|---|
404 | 没有找到资源 | html jsp 名字写错啦;Servlet 名字写错啦;忘记配置 web.xml 注解@WebServlet(“请求名”) |
405 | 没有找到可执行的方法 | service doPost doGet |
500 | 服务器产生异常 | JSP Servlet 执行代码产生问题 |
200 | 正常的响应状态 |
**