JavaWeb基础入门—Servlet和Tomcat环境搭建

版权声明:. https://blog.csdn.net/WildestDeram/article/details/86980311

 

Servlet和Tomcat环境搭建

1.B/S模式执行流程

在浏览器中输入百度的网址,浏览器就会根据输入的网址去找对应的IP地址,这个过程是又DNS来完成。当浏览器确定了地址,就会将用户输入的信息通过HTTP协议发送到百度的服务器主机中。服务器会根据发送过来的信息进行程序(我们自己编写)处理,生成动态的HTML文件,再发送给浏览器,浏览器解析HMTL文件,最后呈现给用户。

2.请求和响应

  • 从浏览器发送给服务器的数据包称为:"请求(Request)"
  • 从服务器返回给浏览器的结果称为:"响应(Respose)"

3.Tomcat下载与安装

下载地址:https://tomcat.apache.org/download-80.cgi       

下载对应的操作系统位数。找到bin目录下——startup.bat文件,双击启动Tomcat服务器。出现命令提示符窗口,最底下出现"start Servlet startup in 1157ms"说明Tomcat服务器已经启动。

然后可以通过在浏览器的地址上输入"http://localhost:8080/"来验证是否配置成功。关闭Tomcat就是把命令提示符窗口关闭即可

4.Eclipse创建JavaWeb项目

 1.点击Servlet栏下方的高亮字体

2.选择Apache下的8.5版本Tomcat

3.第一行是服务器的名称,随便取。第二行是Tomcat的安装位置。第三行是选择JRE。最后Finish

4.创建JavaWeb项目,在左侧空白处右键

5.项目配置

一直next,直到这个页面,打勾。生成XML文件,

创建好后的工程目录

6.抒写Java文件

Sourse——Override/Implement Methods...—倒数第二个打勾,生成方法。

FirstServlet.java

package javaClass;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FirstServlet extends HttpServlet {
	//因为该Java类是需要发布到服务器上,所以要继承HttpServlet类
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse respose) 
			throws ServletException, IOException {
		//接收请求发送的参数
		String name = request.getParameter("name");
		
		//将前端发送过来的数据传入到html字符串中
		String html = "<h1 style='color:lightblue'>hi!"+name+"</h1>";
	
		//在控制台输出
		System.out.println("返回给浏览器的数据:"+html);
		
		//把字符串返回给浏览器	服务器向浏览器返回的输出流
		PrintWriter out = respose.getWriter();
		
		//通过out对象把html发送会浏览器
		out.println(html );
	}	
		
}

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>FirstServletDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- Tomcat是不认识刚才写的FirstServlet.java文件,需要在Web.xml中进行配置 -->
  
  <!-- 该标签意思:定义了一个叫first的Servlet,实现类是javaClass包下的FirstSevlet.java -->
  <servlet>
  	<!-- servlet的别名,自定义 -->
  	<servlet-name>first</servlet-name>
  	<!-- 包名 + 类名   -->
  	<servlet-class>javaClass.FirstServlet</servlet-class>
  </servlet>
  
  <!-- 现在所有的JavaWeb程序都是通过网址来访问,这里的目的就是把上面的servlet和网址绑定 -->
  <servlet-mapping>
  	<servlet-name>first</servlet-name> 
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>
  
</web-app>

右击Servlet栏中的服务器,选择Add and Remove,将刚才的工程添加进服务器中。然后点击调试,开启服务器。

打开浏览器输入该地址

http://localhost:8080/FirstServletDemo/hello?name=JavaWeb

 

5.JavaWeb标准工程结构

6.Servlet开发步骤

  • 创建Servlet类,并继承HttpServlet
  • 重写service方法,编写程序代码
  • 配置web.xml,绑定URL

SimpleServlet.java

package javaClass;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SimpleServlet extends HttpServlet{
	
	/*
	 * HttpServletRequest request:浏览器发送过来的请求
	 * HttpServletResponse response:服务器发送给浏览器的响应
	 */
	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException {
		//getWriter()向浏览器输出的数据流
		PrintWriter out = response.getWriter();
		out.println("<a href='www.baidu.com'>baidu</a>");
	}
}

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>FirstServletDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>simple</servlet-name>
  	<servlet-class>javaClass.SimpleServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>simple</servlet-name>
  	<url-pattern>/sp</url-pattern>
  </servlet-mapping>
</web-app>

Servlet访问方法

  • http://IP地址端口/context-path/url-mapping
  • context-path:工程名
  • url-mapping:映射地址

7.请求参数发送与接收

请求参数就是浏览器把数据发送给服务器的过程称为请求参数。以网页的中填写的表单为例。

student.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生登记表</title>
</head>
<body>
	<h1>学员信息登记表</h1>
	<form>
		姓名:<input name="name"/><br/>
		电话:<input name="mobil"/><br/>
		性别:<selct name="sex" style="width:100px;padding:5px">
			<option value="male">男</option>
			<option value="female">女</option>
		</selct><br/>
		特长:
		<input type="checkbox" name="spec" 	value="English">英语
		<input type="checkbox" name="spec" 	value="Program">编程
		<input type="checkbox" name="spec" 	value="Speech">演讲
		<input type="checkbox" name="spec" 	value="Swimming">游泳
		<br/>
		<input type="submit" value="提交">
		<br/>
	</form>
</body>
</html>

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>FirstServletDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>stu</servlet-name>
  	<servlet-class>javaClass.StudentSystem</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>stu</servlet-name>
  	<url-pattern>/stud</url-pattern>
  </servlet-mapping>

</web-app>

StudentSystem.java

package javaClass;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StudentSystem extends HttpServlet{
	
	public void service(HttpServletRequest request,HttpServletResponse response) 
			throws IOException {
		String name = request.getParameter("name");	
		String mobile = request.getParameter("mobile");
		String sex = request.getParameter("sex");
		String[] spec = request.getParameterValues("spec");		//复选框获取信息写法
		
		PrintWriter out =  response.getWriter();
			
		out.println("<h1>name:"+name+"</h1>");
		out.println("<h1>name:"+mobile+"</h1>");
		out.println("<h1>name:"+sex+"</h1>");
		
		for(int i = 0; i<spec.length; i++) {
			out.println("<h1>name:"+spec[i]+"</h1>");
		}
	}
}

猜你喜欢

转载自blog.csdn.net/WildestDeram/article/details/86980311
今日推荐