Javaweb

servlet介绍

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

配置web.xml文件

<servlet>
    <servlet-name>classtable</servlet-name>
    <servlet-class>com.first.Classtable.classtable</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>classtable</servlet-name>
    <url-pattern>/classtable</url-pattern>
  </servlet-mapping>

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 = 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

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"  %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  <%
    ServletContext context = this.getServletContext();
       List<classbean>TL=new ArrayList<classbean>();
         TL=(List<classbean>)context.getAttribute("CLASSLIST");
  %>
    <table border="2" align="center" width="90%" cellpadding="2" cellspacing="2">
        <caption><h2>我的课表</h2></caption>
        <thead>             
                <td>学期</td>
                <td>班级</td>
                <td>数</td>
                <td>星期一</td>
                <td>星期二</td>
                <td>星期三</td>
                <td>星期四</td>
                <td>星期五</td>
                <td>星期六</td>
                <td>星期日</td>                                
        </thead>
        <tbody>
        <%
            for(classbean L:TL){
        %>
            <tr>
            <td><%=L.getsemester()%></td>
            <td><%=L.getclassCode()%></td>
            <td><%=L.getSection()%></td>
            <td><%=L.getOne()%></td>
            <td><%=L.getTwo()%></td>
            <td><%=L.getfour()%></td>
            <td><%=L.getfive()%></td>
            <td><%=L.getsix()%></td>
            <td><%=L.getseven()%></td>
        
            </tr>
        <%} %>
        </tbody>
    </table>
  </body>
</html>

get和post的特点及其区别----体现在所传递的参数上面

  • get()方式传参的特点
    (1)参数直接放在请求url后面
    (2)从浏览器的地址栏里面可以直接看到所传的参数
    (3)参数的长度有限制,不能把一个很长的数据通过get方式传参
  • post()这种方式传参的特点
    (1).参数放在请求的体部而不是url后面.
    (2).浏览器的地址栏中看不到所传的参数.
    (3).因为参数不用出现在地址栏里面,所有参数长度是没有限制的.
    9、 中文乱码问题:
    同意格式为字符编码格式:utf-8
    (1)设置浏览器的编码格式为:utf-8
    (2)在tommact服务器中,在conf文件中设置编码格式:
    <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443"/>
    (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文件中<servlet>和<servlet-mapping>中的两个<servlet-name>不一致 没有将工程部署到Tomcat的webapps下面 Web工程部署时的结构没有遵循Servlet的规范。
  • 500错误: 500的错误原因是请求的Servlet在执行service方法的过程中出现了错误,程序不能继续运行了。
    Servlet没有继承HttpServlet或实现Servlet接口, web.xml文件中的<servlet-class>写错,与真正的包名类名不符 ,service方法中的代码运行时抛出异常 .
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容