Servlet相关技术

  1. 建立一个 Servlet 文件 accept.java 和一个 register.jsp 文件,实现用 Servlet 实现获取 表单数据的功能。 ¨ 程序功能:利用 Servlet 的方式实现表单数据的获取。 ¨ 参考源代码:

accept.java

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/AcceptServlet")

public class accept extends HttpServlet {

    public accept() {

    }



    public String codeToString(String str) {

        String s = str;



        try {

            byte[] tempB = s.getBytes("ISO-8859-1");

            s = new String(tempB);

            return s;

        } catch (Exception var4) {

            return str;

        }

    }



    public void init(ServletConfig config) throws ServletException {

        super.init(config);

    }



    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=GB2312");

        PrintWriter out = response.getWriter();

        out.println("<HTML><head><title>接收新用户注册 </title></head><BODY>");

        out.println("这是新用户注册所提交的数据:<br>");

        out.println("用户名是: " + this.codeToString(request.getParameter("username")) + "<br>");

        out.println("密码是: " + this.codeToString(request.getParameter("userpassword")) + "<br>");

        out.println("性别是: " + this.codeToString(request.getParameter("sex")) + "<br>");

        out.println("出生年月是: " + request.getParameter("year") + request.getParameter("month") + request.getParameter("day") + "<br>");

        out.println("电子邮箱是:" + request.getParameter("email") + "<br>");

        out.println("家庭住址是: " + this.codeToString(request.getParameter("address")) + "<br>");

        out.println("</body> </html>");

    }

}import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/AcceptServlet")

public class accept extends HttpServlet {

    public accept() {

    }



    public String codeToString(String str) {

        String s = str;



        try {

            byte[] tempB = s.getBytes("ISO-8859-1");

            s = new String(tempB);

            return s;

        } catch (Exception var4) {

            return str;

        }

    }



    public void init(ServletConfig config) throws ServletException {

        super.init(config);

    }



    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=GB2312");

        PrintWriter out = response.getWriter();

        out.println("<HTML><head><title>接收新用户注册 </title></head><BODY>");

        out.println("这是新用户注册所提交的数据:<br>");

        out.println("用户名是: " + this.codeToString(request.getParameter("username")) + "<br>");

        out.println("密码是: " + this.codeToString(request.getParameter("userpassword")) + "<br>");

        out.println("性别是: " + this.codeToString(request.getParameter("sex")) + "<br>");

        out.println("出生年月是: " + request.getParameter("year") + request.getParameter("month") + request.getParameter("day") + "<br>");

        out.println("电子邮箱是:" + request.getParameter("email") + "<br>");

        out.println("家庭住址是: " + this.codeToString(request.getParameter("address")) + "<br>");

        out.println("</body> </html>");

    }

}

register.jsp

<%@ page contentType="text/html;charset=gb2312" language="java" %>

<script language="javascript">

    function on_submit(){

        if(forml.username.value==""){

            alter("用户名不能为空,请输入用户名!");

            forml.username.focus();

            return false;

        }

        if(forml.userpassword.value==""){

            alter("用户密码不能为空,请输入用户名!");

            forml.userpassword.focus();

            return false;

        }

        if(forml.reuserpassword.value==""){

            alter("用户确认密码不能为空,请输入用户名!");

            forml.reuserpassword.focus();

            return false;

        }

        if(forml.userpassword.value!=forml.reuserpassword.value){

            alter("密码与确认密码不同");

            forml.userpassword.focus();

            return false;

        }

        if(forml.email.value.length!=0){

            for(i=0;i<forml.email.value.length;i++)

                if(forml.email.value.charAT(i)=="@")

                    break;

            if(i==forml.email.value.length){

                alter("用户确认密码不能为空,请输入用户名!");

                forml.reuserpassword.focus();

                return false;

            }

        }

        else{

            alter("请输入Email!");

            forml.email.focus();

            return false;

        }

    }

</script>

<html>

<head>

    <title>新用户注册</title>

</head>

<body>

<form method="POST" action="AcceptServlet" name="forml" onsubmit="return on_submit()">

    新用户注册<br>

    用户名(*):<input type="text" name="username" size="20"><br>

    密&nbsp;码(*):<input type="password" name="userpassword" size="20"><br>

    再输一次密码(*):<input type="password" name="reuserpassword" size="20"><br>

    性别:<input type="radio" value="男" checked name="sex">男<input type="radio" value="女" checked name="sex">女<br>

    出生年月:<input name="year" size="4" maxlength=4>年

            <select name="month">

                <option value="1" selected>1</option>

                <option value="2">2</option>

                <option value="3">3</option>

                <option value="4">4</option>

                <option value="5">5</option>

                <option value="6">6</option>

                <option value="7">7</option>

                <option value="8">8</option>

                <option value="9">9</option>

                <option value="10">10</option>

                <option value="11">11</option>

                <option value="12">12</option>

            </select>月

    <input name="day" size="3" maxlength=4>日<br>

    电子邮箱(*):<input name="email" maxlength=28><br>

    家庭住址:<input type="text" name="address" size="20"><br>

    <input type="submit" value="提交" name="B1"><input type="submit" value="全部重写" name="B2"><br>

</form>

</body>

</html>
 

      

   

2.编写一个过滤器改变请求编码。编写一个 loginform.html 文件,代码如下

loginform.html

<!DOCTYPE html>

<html>

<head>

    <title>使用过滤器改变请求编码</title>

    <meta http-equiv="Content-Type" content="text/html;charset=GB2312">

</head>

<body>

<center>

    <h2>请输入用户名和口令:</h2>

    <form method="post" action="First">

        <table>

            <tr>

                <td>用户名:</td>

                <td><input name="name" type="text"></td>

            </tr>

            <tr>

                <td>口 令:</td>

                <td><input name="pass" type="password"></td>

            </tr>

            <tr>

                <td></td>

                <td>

                    <input name="ok" type="submit" value="提交">

                    <input name="cancel" type="reset" value="重置">

                </td>

            </tr>

        </table>

    </form>

</center>

</body>

</html>

编写处理请求参数的 Servlet

CheckParamServlet.Java

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/First")



public class CheckParamServlet extends HttpServlet {

    public CheckParamServlet() {

    }



    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name = request.getParameter("name");

        String pass = request.getParameter("pass");

        response.setContentType("text/html;charset=gb2312");

        PrintWriter out = response.getWriter();

        out.println("<html><head><title>Param Test</title></head>");

        out.println("<h3 align=center>你的用户名为:" + name + "</h3>");

        out.println("<h3 align=center>你的口令为:" + pass + "</h3>");

        out.println("</body></html>");

    }



    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        this.doGet(request, response);

    }

}

下面通过编写一个过滤器改变请求编码
EncodingFilter.java
import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;



public class EncodingFilter implements Filter {

    protected String encoding = null;

    protected FilterConfig config;



    public EncodingFilter() {

    }



    public void init(FilterConfig filterConfig) throws ServletException {

        this.config = filterConfig;

        this.encoding = filterConfig.getInitParameter("Encoding");

    }



    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        if (request.getCharacterEncoding() == null) {

            String encode = this.getEncoding();

            if (encode != null) {

                request.setCharacterEncoding(encode);

                response.setCharacterEncoding(encode);

            }

        }



        chain.doFilter(request, response);

    }



    protected String getEncoding() {

        return this.encoding;

    }



    public void destroy() {

    }

}

实现一个查询天气的 web 程序;

使用表单完成城市的输入,提交使用 ajax 完成查询显示

<html>

<meta charset="UTF-8">

<title>天气预报</title>

<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js"></script>

<script>

    $(function(){

        $("#ajaxs").on('click',function(){

            var values = $("#btn1").val();//获取用户输入的城市

            //alert(values);

            if(values == ""){

                alert("输入不能为空");

                return

            }

            $.ajax({

                type:'GET',

                dataType:'jsonp',

                jsonp:'callback',

                jsonpCallback:'test',

                url:'http://api.asilu.com/weather/',//接口地址

                data:{

                    "city":values   //要发送给服务器的数据

                },

                success:function(datas){  //服务器返回的数据 通过参数传递给客户端

                    var data = datas;   //datas 就是服务器返回的数据

                    //console.log(data);

                    var str="";

                    str +="<tr align='center'>";

                    str +="<td>"+data.city+"</td>";

                    str +="<td>"+data.weather[0].date+"</td>";

                    str +="<td>"+data.weather[0].temp+"</td>";

                    str +="<td>"+data.weather[0].wind+"</td>";

                    str +="<td>"+data.weather[0].weather+"</td>";

                    str +="</tr>";



                    $("#citySearch").html(str);

                }



            });

        });

    });

</script>

</head>

<body>

<h1>天气查询 </h1>

<table border="1" cellspacing="0" cellpadding="0">

    <thead>

    <tr>

        <th>当前城市</th>

        <th>当前日期</th>

        <th>当前温度</th>

        <th>当前风向</th>

        <th>当前天气</th>

    </tr>

    </thead>

    <tbody id="citySearch">



    </tbody>

</table>

<input type="text" placeholder="请输入查找的城市" id="btn1"/>

<button id="ajaxs">确定</button>

</body>

</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值