勾选“生成web.xml”,整个程序的配置文件(部署描述符)
在构建Web工程的过程中,要指定Web工程生活的容器。我们指定在tomcat中,他就会被安装到Tomcat中执行。
可以选择“no”,暂时不切换。
与普通Java工程相比,Java Web多了与网页相关的WebContent和Tomcat的库
点击next
点击Finish
点击Finish
网页做结构,样式表做外观
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <style> h3{ font-size:30px; } body{ padding:30px; font-size:20px; } div{ margin-bottom:10px; } input{ padding:5px; color:blue; font-size:20px; } button{ font-size:20px; } </style> <body> <!-- 标题 --> <h3>某范围质数查找器</h3> <!-- form: 表单 --> <form action="findPrime" method="post"> <div> <span>开始范围:</span> <!-- 名字起识别作用 --> <input type="text" name="begin"> </div> <div> <span>结束范围:</span> <input type="text" name="end"> </div> <button>质数查找</button> </form> </body> </html>这个包是根包
next
将映射地址更名为findPrime
映射地址就是网页,以后访问这个地址就可以访问到这个servlet。实现访问一个网址就是访问一个Java类的某一个方法
选择默认选项 Finish
完成servlet创建
doGet:小数据,直接访问网址 doPost:大数据,点击按钮将按钮所在的表单的输入控件的值提交,即提交表单
在Servlet的头部自动生成的注解,标明这个servlet对应的网址是“findPrime”。由Tomcat搞定。 修改doGet的内容为:
如出现404: 404类似空指针异常,可能是服务器没有同步更新。解决方法:
重新发布
如果控制台还是没有反应,就重新部署: 服务器会重新启动。
点击“质数查找”
一个是浏览器往servlet流动的流,包含了表单的提交参数。一个是servlet往浏览器流动的流。
得到的参数,返回值都是字符串,要装换为int
//得到的参数,返回值都是字符串,要装换为int int begin = Integer.parseInt(request.getParameter("begin")); int end = Integer.parseInt(request.getParameter("end"));运行结果如下: 网页送到Java的收到了
内容如下:
package edu.mju.demowork.service; import java.util.List; public interface MathService { List<Integer> findScopedPrimes(int begin,int end);//找到某个范围的质数 }内容如下:
package edu.mju.demowork.service; import java.util.ArrayList; import java.util.List; public class MathServiceImpl implements MathService { public List<Integer> findScopedPrimes(int begin, int end) { List<Integer> primeList = new ArrayList<>(); //泛型,说明了这个集合类型所能存放的类型 for(int num=begin;num<=end;num++) if(isPrime(num)){ //如果是质数 primeList.add(num); } return primeList; } private boolean isPrime(int num){//判断一个数是不是质数,返回值是Boolen,疑问句,以驼峰命名 if(num<=1) return false; if(num==2) return true; int top = (int)Math.sqrt(num); int i; for(i=2;i<=top;i++) if(num%i==0) break; return i==top+1; } }“Tester.java”内容如下:
/** * */ package edu.mju.demowork.test; import edu.mju.demowork.service.MathService; import edu.mju.demowork.service.MathServiceImpl; /** * @author 20159 * */ public class Tester { /** * @param args */ public static void main(String[] args) { MathService mathService = new MathServiceImpl(); System.out.println(mathService.findScopedPrimes(3, 100)); } }试运行: 结果如下:
点击“质数查找”: 成功!
