contentType与pageEncoding的区别(收集)

 

这个问题是由下面的代码引起的:
java 代码
  1. <!--page contentType=</span><span class="string">"text/html;charset=gb2312"</span><span-->  
  2.       
如果把
java 代码
  1. <!--page contentType=</span><span class="string">"text/html;charset=gb2312"</span><span-->  

 

中的contentype换成pageEncoding后,请求这个页面时,js代码就会出错,所以在网上找了一点关于这两个区别:

contentType — 指定的是JSP页最终 Browser(客户端)所见到的网页内容的编码

 

pageEncoding -- 指定JSP编写时所用的编码



该META标签定义了HTML页面所使用的字符集为GB2132,就是国标汉字码。如果将其中的“charset=GB2312”替换成“BIG5”,则该页面所用的

字符集就是繁体中文Big5码。当你浏览一些国外的站点时,IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTM

L页面META标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集,则IE就提示下载。其他
的语言也对应不同的charset,比如日文的字符集是“iso-2022-jp ”,韩文的是“ks_c_5601”。

Content-Type的Content还可以是:text/xml等文档类型;Charset选项:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-asc

ii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw,

x-cns11643-1,x-cns11643-2等字符集;Content-Language的Content还可以是:EN、FR等语言代码。

 

pageEncoding
     
在JSP标准的语法中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。

ContentType
     ContentType属性指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是“text/html”; 字符编码方式的默认值是“ISO-8859-1”. MIME类型和字符编码方式由分号隔开

pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的。

pageEncoding   是通知web server jsp的编码。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是具体步骤: 1. 制作JSP文件,添加表单,用来收集用户个人信息。 在JSP文件中添加如下代码,可以实现一个简单的表单: ``` <html> <head> <title>用户信息收集表单</title> </head> <body> <form action="submit.jsp" method="post"> <label>姓名:</label><input type="text" name="name"><br> <label>性别:</label><input type="radio" name="gender" value="male">男<input type="radio" name="gender" value="female">女<br> <label>年龄:</label><input type="text" name="age"><br> <label>邮箱:</label><input type="email" name="email"><br> <input type="submit" value="提交"> </form> </body> </html> ``` 2. 制作JavaBean,用来存放个人信息。 在src目录下创建一个JavaBean类,名为Person,代码如下: ``` public class Person { private String name; private String gender; private int age; private String email; public Person() {} public Person(String name, String gender, int age, String email) { this.name = name; this.gender = gender; this.age = age; this.email = email; } // getter和setter方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } ``` 3. 添加Servlet,将收集的用户信息保存到数据库中。 在Java web项目中创建一个Servlet,名为SubmitServlet,代码如下: ``` @WebServlet("/submit") public class SubmitServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String gender = request.getParameter("gender"); int age = Integer.parseInt(request.getParameter("age")); String email = request.getParameter("email"); // 创建一个Person对象 Person person = new Person(name, gender, age, email); // 将Person对象保存到数据库中 Connection conn = null; PreparedStatement stmt = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String user = "root"; String password = "admin"; conn = DriverManager.getConnection(url, user, password); // 编写SQL语句 String sql = "insert into person (name, gender, age, email) values (?, ?, ?, ?)"; // 创建PreparedStatement对象 stmt = conn.prepareStatement(sql); // 填充占位符 stmt.setString(1, person.getName()); stmt.setString(2, person.getGender()); stmt.setInt(3, person.getAge()); stmt.setString(4, person.getEmail()); // 执行SQL语句 stmt.executeUpdate(); // 跳转到查询页面 response.sendRedirect("query.jsp"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接 try { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 4. 制作JSP文件,添加查询功能,显示用户信息。 在JSP文件中添加如下代码,可以实现查询功能: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="java.sql.*" %> <%@ page import="com.example.Person" %> <% List<Person> personList = new ArrayList<Person>(); Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String user = "root"; String password = "admin"; conn = DriverManager.getConnection(url, user, password); // 编写SQL语句 String sql = "select * from person"; // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL语句 rs = stmt.executeQuery(sql); // 遍历结果集 while (rs.next()) { String name = rs.getString("name"); String gender = rs.getString("gender"); int age = rs.getInt("age"); String email = rs.getString("email"); // 创建一个Person对象,并添加到List中 Person person = new Person(name, gender, age, email); personList.add(person); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } %> <html> <head> <title>查询用户信息</title> </head> <body> <table border="1"> <tr> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>邮箱</th> </tr> <% for (Person person : personList) { %> <tr> <td><%= person.getName() %></td> <td><%= person.getGender() %></td> <td><%= person.getAge() %></td> <td><%= person.getEmail() %></td> </tr> <% } %> </table> </body> </html> ``` 以上就是使用JSP技术,实现收集用户信息、存储到数据库、查询用户信息的完整流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值