Javaweb

servlet介绍
Servlet是一个java类及接口,当Web应用运行在服务器上时负责接收客户端(Client)向服务器发起的HTTP请求(Request),然后再根据需要向客户端返回HTTP响应(Response)。
配置web.xml文件

classtable com.first.Classtable.classtableclasstable /classtable

【Javaweb】servlet类
package com.classtable.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.mysql.jdbc.Driver; public class Query extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String str = request.getParameter("class"); try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Connection conn =(Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/nf", "root", "148315"); Statement stmt = (Statement) conn.createStatement(); String sql = "SELECT classCode FROM class WHERE className ='"+str+"'"; ResultSet rs = stmt.executeQuery(sql); String code= null; if(rs.next()){ code = rs.getString("classCode"); } sql = "select section,one,two,three,four,five,six,seven from timetable where classCode = '"+code+"'and semester ='17-18-1'"; rs = stmt.executeQuery(sql); StringBuffer sb = new StringBuffer(); while(rs.next()){ sb.append(rs.getString("section")+rs.getString("one")+rs.getString("two")+rs.getString("three")+rs.getString("four")+rs.getString("five")+rs.getString("six")+rs.getString("seven")); } String data = https://www.it610.com/article/sb.toString(); response.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset = utf-8"); PrintWriter pw = response.getWriter(); pw.write(data); } catch (SQLException e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }}

Classtable.jsp
我的课表
学期 班级 星期一 星期二 星期三 星期四 星期五 星期六 星期日

get和post的特点及其区别----体现在所传递的参数上面
  • get()方式传参的特点
    (1)参数直接放在请求url后面
    (2)从浏览器的地址栏里面可以直接看到所传的参数
    (3)参数的长度有限制,不能把一个很长的数据通过get方式传参
  • post()这种方式传参的特点
    (1).参数放在请求的体部而不是url后面.
    (2).浏览器的地址栏中看不到所传的参数.
    (3).因为参数不用出现在地址栏里面,所有参数长度是没有限制的.
    9、 中文乱码问题:
    同意格式为字符编码格式:utf-8
    (1)设置浏览器的编码格式为:utf-8
    (2)在tommact服务器中,在conf文件中设置编码格式:

    (3)在web.xml、servlet中,点击 alt+回车 快捷键 :设置编码格式
    (4) 在servlet代码中,设置req/resp 的字符编码格式:req.setCharacterEncoding("UTF-8");
    指定浏览器传输的数据是用特定编码格式:req.setContentType("text/html; charset=UTF-8");
    常见错误及其解决
  • 400错误:404产生的原因为Web服务器(容器)根据请求地址找不到对应资源,以下情况都会出现404的错误提示:
    输入的地址有误(应用名大小写不正确,名称拼写不正确) 在web.xml文件中和中的两个不一致 没有将工程部署到Tomcat的webapps下面 Web工程部署时的结构没有遵循Servlet的规范。
  • 500错误: 500的错误原因是请求的Servlet在执行service方法的过程中出现了错误,程序不能继续运行了。
    Servlet没有继承HttpServlet或实现Servlet接口, web.xml文件中的写错,与真正的包名类名不符 ,service方法中的代码运行时抛出异常 .

    推荐阅读