每天打开IDEA需要做的三步骤:
今日目标
通过敲写代码制作一个简单的用户登录页面,并满足(“如果用户名是你的学号,密码是1234,那么显示你好,登录名称,如果不对,那么显示账号或密码错误”)
最终效果图如下图所示:
登录成功
登录失败
步骤
-
在main目录底下新建java文件,并将其标记为Source root源码根
-
新建一个包(一般为域名的反写),在包底下新建子包(根据代码的功能来创建)
-
新建类(对类来说,头字母一般大写)
-
本次实验需要用到Java Servlet API 3.1.0,进入https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/3.1.0,进行代码的复制
-
将代码放入pom.xml中的dependency中,可能第一次需要进行文件下载,稍等片刻即可。
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
- 进入之前的类中 ctrl+o 打开”选择/覆盖方法“栏,选择以下两个方法,点击OK。
7. 对方法进行修改
原先代码:
修改后的代码
package cn.edu.mju.project1.controller;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/login") //在网页上可以通过http://localhost:8081/login 访问这个类
public class LoginController extends HttpServlet {//继承了HttpServletz中的两个方法
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");// 设置响应字符编码格式为 UTF-8,使其为中文
PrintWriter out = resp.getWriter(); //这是servlet的输出流的意思,然后在页面直接可以显示和解析
out.println("<html>");
out.println("<header>");
out.println("<meta charset=\"utf-8\">"); //编码格式 告诉给浏览器用什么方式来都这页代码,
out.println("<title>Login</title>");
out.println("</header>");
out.println("<body>");
out.println("<form action='' name='submit' method='post'>");
out.println("登录名称:<input type='text' name='loginName' /><br>");
out.println("登录密码:<input type='password' name='loginPwd' /><br>");
out.println("<input type='submit' name='btnLogin' value='登录' /><br>");
out.println("<form>");
out.println("</body>");
out.println("</html>");
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
String loginName = req.getParameter("loginName");
String loginPwd = req.getParameter("loginPwd");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body>");
if("24".equals(loginName)&&"1234".equals(loginPwd)){
out.println("<h3>你好</h3>");
}
else{
out.println("<h3>账号或密码错误</h3>");
}
out.println("</body>");
out.println("</html>");
}
}
- 关于get和post提交方法的区别
“1.Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。2.Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。”
Get方法输入数据会放在网址上
post的方法输入数据则没有显示,较为安全
- 确认代码无误后点击运行即可
通过网站http://localhost:8081/login进行测试,即可完成今日目标
总结
今天两节课的收获还是不少的,只是对于代码还是不怎么熟悉,希望通过之后的课程可以将代码慢慢熟悉起来。