第一次作业:jsp练习

本文介绍了如何配置Tomcat环境,部署JSP文件,处理表单提交并在Java中处理POST请求,包括防止乱码和登录验证。作者展示了如何在JSP中创建表单,接收用户输入并显示在展示页面上。
摘要由CSDN通过智能技术生成

首先配置tomcat环境,开启tomcat:
配置完成之后打开localhost:8080之后进入apache tomcat官网,配置成功

将课件中的demo复制到tomcat的webapps目录下的ROOT文件夹下,开启tomcat环境,输入网址localhost:8080/demo,运行结果如下:

这边分别创建一个jsp文件和txt文件

将jsp文件复制到tomcat文件中的webapps\ROOT目录下,输入网址localhost:8080/myfirst.jsp,开启tomcat环境,运行结果如下:

下面使用idea进行jsp操作:
配置文件:

在web添加新的jsp文件hello.jsp:
运行:
再来新建一个form.jsp文件,运行:

练习:
创建一个输入页面input.jsp
 

<%--
  Created by IntelliJ IDEA.
  User: Yiyun
  Date: 2024/4/6
  Time: 16:30
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<form action="show.jsp" method="post">
    <table border="1">
        <tr>
            <td>姓名:</td>
            <td><input name="name" type="text"></td>
        </tr>
        <tr>
            <td>性别:</td>
            <td>
                <input type="radio" name="gender" value="男" checked>男
                <input type="radio" name="gender" value="女">女
            </td>
        </tr>
        <tr>
            <td>爱好:</td>
            <td>
            <input type="checkbox" name="hobby" value="篮球">篮球
            <input type="checkbox" name="hobby" value="旅游">旅游
            <input type="checkbox" name="hobby" value="音乐">音乐
            <input type="checkbox" name="hobby" value="摄影">摄影
            </td>
        </tr>
        <tr>
            <td>email:</td>
            <td><input name="email" type="email"></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="submit">
            <input type="reset" value="全部重写">
            </td>
    </table>
</form>

创建一个展示页面show.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    //防止乱码
    request.setCharacterEncoding("UTF-8");

    /* request.getParameterValues("hobby")返回的是一个字符串数组(String[]),
    而不是单个字符串。当你试图在JSP页面上直接输出一个数组时,它会显示数组的类型([Ljava.lang.String;)
    和哈希码(@e3ae17c, 想要显示所有的爱好,需要遍历这个数组并逐个输出 */

    String[] hobbies = request.getParameterValues("hobby");
    String hobbyList = "";
    if (hobbies != null) {
        for (String hobby : hobbies) {
            hobbyList += hobby + " ";
        }
    }
%>
<h1>用户信息</h1>
<table border="1">
    <tr>
        <td>姓名:</td>
        <td><%= request.getParameter("name") %></td>
    </tr>
    <tr>
        <td>性别:</td>
        <td><%= request.getParameter("gender") %></td>
    </tr>
    <tr>
        <td>爱好:</td>
        <td><%= hobbyList %></td>
    </tr>
    <tr>
        <td>Email:</td>
        <td><%= request.getParameter("email") %></td>
    </tr>
</table>

效果展示:

输入相关信息之后点击提交,会跳转到show.jsp页面中:

这里需要注意几个点:

  1. <form action="show.jsp" method="post"> 控制跳转页面
    
  2. 每一条语句下面都要添加一个name属性,以便被requests对象查询
  3. value属性才是浏览器读入输出的结果
  4. request.setCharacterEncoding("UTF-8");方法可以防止乱码
  5. request.getParameterValues("hobby")返回的是一个字符串数组(String[]),
    而不是单个字符串。当你试图在JSP页面上直接输出一个数组时,它会显示数组的类型([Ljava.lang.String;)和哈希码(@e3ae17c, 想要显示所有的爱好,需要遍历这个数组并逐个输出

登录页面:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<%
    String str=request.getParameter("username");
    String password=request.getParameter("password");
    if(null!=str){
        if(str.equals("tom")&&password.equals("123")){
            out.println("您好,tom!");
        }else{
            out.println("您输入的账号密码有误,请重新输入!");
        }
    }
%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Login</title>
</head>
<body>
    <form action="index.jsp" method="post">
        账号:<input type="text" name="username">
        <br>
        密码:<input type="password" name="password">
        <br>
        <input type="submit" value="登录">
    </form>
</body>
</html>


运行结果:

这里只需要注意一点:Java语法中的System.out.println()来输出信息,这个方法会将信息输出到服务器的控制台,而不是返回给用户的浏览器,因此,在浏览器中看不到任何反馈。

想要在浏览器中显示信息,需要使用out.println()方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值