转载请标明出处:
http://blog.youkuaiyun.com/six_six_six/article/details/75646006
本文出自李泽旭的博客
一、概述
大家好!我今天给大家带来的是Java Web的入门,因为本人也是初学者,如果哪里说得不对或者不全面,请给我提一些建议或意见,Java Web应用十分广泛,就拿你在网页上登录账号来说,你在输入用户名和密码后,如果正确会提示正确然后进入,错误则会反馈给你用户名或者密码错误,看似很平常的东西,它是怎么实现的呢,大家别着急,且听我慢慢道来。
1.首先,用户会在网页的登录或者注册界面(其实就是一个form表单)填写你的信息,当点击登录或者提交按钮后,控制台(称为后台)将用户输入的信息(称为请求request)得到。2.然后对用户的信息根据不同的需要进行处理。3.最后再将反馈的信息响应(response)给用户。这个过程用干练的话来讲就是“前台与后台的交互”。
二、准备工作
1.Myeclipse开发工具。
1. Tomcat(apache-tomcat-6.0.29)服务器。
2. 将apache-tomcat-6.0.29集成在Myeclipse上。
3. 准备工作做好以后建一个Web Project项目,然后我们就可以开始展示最重要的代码环节啦。
三、项目整体预览
四、项目代码展示
1. 首先在项目的WebRoot下建立 一个HTML的文件写一个form表单。
<!DOCTYPE html>
<html>
<head>
<title>MyHTML.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<!-- action里的名字与web.xml中<url-pattern>/路径名字</url-pattern>的路径名字相同;
method是提交form表单的方法,有post和get方法,一般用post方法,我们在继承了HttpServlet
类的Java代码中优化了post方法,在这里无论是用get还是post,都会以post的方法来传参;注意:name
是用来唯一标识从前台页面获取的信息,绝对不能重复,而且要和代码的request.getParameter("user")
里一一对应。
-->
<form action="lxy" method="post">
用户名:<input name="user" type="text"/>
密 码:<input name="pass" type="password"/>
<button type="submit">登录</button>
</form>
</body>
</html>
2.其次 要建立一个action包(eg:com.ruide.action),然后再向包里写一个继承HttpServlet的类,重写doGet和doPost的方法。
package com.ruide.action;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.awt.peer.SystemTrayPeer;
import java.io.IOException;
import java.io.PrintWriter;
//一个类继承自HttpServlet
public class LoginAction extends HttpServlet{
//重写了HttpServlet里的doGet方法
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
//点睛之笔,如果网页中method方法为get,可已将这个方法再转化为post
this.doPost(request, response);
}
//重写了HttpServlet里的doPost方法
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
//设置打印到控制台文字的编码格式为utf-8(注意:一定要在打印到控制台之前设置)
request.setCharacterEncoding("utf-8");
//根据网页中的name获取用户输入(也就是用户的请求)的信息
String username=request.getParameter("user");
String userpass=request.getParameter("pass");
//在控制台打印出获取的信息
System.out.println("username="+username);
System.out.println("userpass="+userpass);
try{
//设置响应在客户浏览器编码格式为utf-8(注意:一定要在创建out对象之前设置)
//response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
//获取响应的对象out
PrintWriter out=response.getWriter();
out.print("username="+username);//将相应的信息打印到客户端浏览器
out.print("<br />");
out.print("userpass="+userpass);
//加了一个判断,如果用户名以admin开头,密码是123456,就登陆成功,给用户反馈出九九乘法表,失败就反馈Fail!!!
if(username.startsWith("admin")&&userpass.equals("123456")){
out.print("<br />");
out.print("Success!!!");
out.print("<br />");
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
out.print(j+"*"+i+"="+j*i+" ");
}
out.print("<br />");
}
}else{
out.print("Fail!!!");
}
}catch(IOException e){
e.printStackTrace();
}
}
}
3. 最后在WebRoot下的WEB-INF下的web.xml配置文件中连接前台页面和后台服务器。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>lzx</servlet-name>
<!--包名+类名,找到继承自HttpServlet类-->
<servlet-class>com.ruide.action.LoginAction</servlet-class>
</servlet>
<servlet-mapping>
<!--一个用来作为中介的东西,根据他找到继承自HttpServlet类和反馈信息的路径-->
<servlet-name>lzx</servlet-name>
<!--找到反馈信息的路径-->
<url-pattern>/lxy</url-pattern>
</servlet-mapping>
</web-app>
164

被折叠的 条评论
为什么被折叠?



