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 | 正常的响应状态 |
**
