javaWeb(二)

HTML发送请求的方式:

1.超链接

2.表单

3.利用js的语法 本质就是超链接

这些请求既可以指向前台也可以指向后台Java

<a href="http://www.baidu.com">外部的百度链接</a>
      <a href="aaa.html">内部的本地链接</a>
 
<form action="aaa.html"  method="post" >
      <input type="submit" value="提交">
</form>
 
<button id="btn">点击我利用JS发送请求</button>
 
<script>
    document.getElementById("btn").onclick = function (){
           location.href = "aaa.html";
    }
=</script>

Java如何编写代码 来处理前台的请求

通过编写servlet(专门和前台进行交互)即可

servlet类名的规范  XxxServlet  Xxx表示该servlet是处理什么前台请求的 例如LoginServlet

如何让一个普通的Java类变成可以处理前台请求的servlet类

1.导入jar包 servlet-api.jar  导入了jar包才可以使用Servlet的相关功能

2.在类上加上@WebServlet("/xxx")   注意/表示绝对路径 Xxx表示请求的路径名,表示该类是可以和前台进行交互了

3.继承HttpServlet类  让子类拥有父类的相关方法。

4.重写父类的service方法。(处理请求的相关代码)
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
 
@WebServlet("/test123")
public class TestServlet extends HttpServlet {
 
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("进来了");
    }
}

前台如何发送数据给后台

1.超链接发送数据,只需要在后面加上?key=value&key=value...的形式即可

<a href="AServlet?id=123&name=张三&age=18">发送若干数据</a>

2.利用js的语法 本质就是超链接

<script>
            document.getElementById("btn").onclick = function (){
                location.href = "/BServlet?id=123&sex=男";
            }
</script>

3.表单, 通过加上name属性即可

<form action="/CServlet"  method="post" >
            账号:<input type="text" name="username" > <br>
            密码:<input type="password" name="password" > <br>
            性别:
            <input type="radio" name="sex" checked  value="男" >男
            <input type="radio" name="sex"  value="女" >女
            <br>
            地址:
            <select name="address" >
                <option>湖南</option>
                <option>广东</option>
                <option>云南</option>
            </select>
            <br>
            爱好:
            <input type="checkbox" name="likes" value="吃">吃
            <input type="checkbox" name="likes" value="喝">喝
            <input type="checkbox" name="likes" value="玩">玩
            <input type="checkbox" name="likes" value="乐">乐
            <br>
            简介:
            <textarea name="jieshao">自我介绍:</textarea> <br>
            生日:
            <input name="birthday" type="date">  <br>
 
 
            <br>
            <input type="submit" value="提交">
</form>

注意事项:

内部的表达元素都要加上name来修饰。因为后台都是通过name来获取值

单选框:加上若干个相同的name即可,记得补充value

多选框:加上若干个相同的name即可,记得补充value

下拉框:内部的option的value值可以省略的,但是你要知道,如果省略了以option标签的内部为准。如果没省略就以value为准
 

如何接受前台传递过来的参数

注意事项:接受的返回值全是String  需要自行转换

req.getParameter("id");只能获取单个参数
        String id = req.getParameter("id");
        String age = req.getParameter("age");
        String name = req.getParameter("name");
        System.out.println(id + "~~" + name + "~~" +age);
    }
}

类似于多选框的 就不能用上面的方式  因为上面的只能获取单个

String[] likes = req.getParameterValues("likes");
        for(int i = 0 ;i<likes.length;i++){
            System.out.println(likes[i]);
        }

前台传递数据  如果出现中文,就会乱码。

如何解决,只需要在接受数据的前面加上 如下代码即可:

req.setCharacterEncoding("utf-8");

补充:

1. 修改tomcat的conf文件夹的logging.properties文件 将下面这行改成GBK
  #java.util.logging.ConsoleHandler.encoding = GBK  默认是UTF-8

2.File-setting-console编码改成GBK

3.File-setting-FileEncoding 三个地方改成UTF-8
 

web项目是存在缓存问题的:

好处就是节省流量节省加载时间。

坏处就是无法得到理想的正确的结果。

Web缓存存在的两个地方 :

1.浏览器内部--更多工具--清除浏览数据

2.idea项目内部的out目录(加载web项目的缓存目录)

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值