关于JavaWeb图书商城答辩问题总结

1.如何解决sql注入问题

sql注入一般发生在我们的登录模块,在java中,我们使用PreparedStatement实现处理sql语句,因此不会发生sql注入问题

select * from user where username =and password=?  由于用的是PreparedStatement实现处理sql语句,所以不会产生sql注入
select * from user where name = '"+name+"' and password = '"+password+”’//假设传过来的 password ="a' or 1=1 or '",Statement方式拼接字符串的方式就会产生sql注入

2.关于jsp与servlet

什么是jsp
JSP(Java Server Pages)是Sun 公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码。jsp 文件在容器中会转换成Servlet中执行
什么是servlet
Servlet (Server Applet)是Sun公司指定的一种用来扩展Web服务器功能的组件规范,属于服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
两者联系
jsp在实质上就是servlet,我们的servlet充当控制层,用来接收请求与返还数据,当然也担负着调用service服务层代码的作用。在早期我们的html代码也是写在servlet中的,后来这种方式确实太过费力,也就逐渐淘汰了,但jsp代码在运行时会翻译为servlet。

jsp编译为Java文件的存放路径

JavaBean

javabean实际上就是一个普通类,一般内含get,set方法这种,在我们的JavaWeb开发过程中,我们常说的MVC开发模式中,JavaBean就相当于我们的Model 即模型层,他里面一般包含了我们的服务层service,我们的数据库持久层 dao与实体类层,而Servlet则充当的是Controller控制层,jsp则是我们的view视图层

项目中的业务处理

书城项目很简单,即我们点击页面上的超链接,超链接发送请求进而被servlet接收,servlet中调用了service层,service进而调用dao层进行数据库操作(即数据库crud),将数据操作的结果层层返还,最终在页面上相应。
jsp页面的超链接请求,我们去找到对应的servlet
关于JavaWeb图书商城答辩问题总结_第1张图片
找到对于servlet后,其为GoodUserServlet
关于JavaWeb图书商城答辩问题总结_第2张图片
进入servlet后,我们看到了他的代码

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");//设置JSP编译成Servlet时使用的编码
		response.setContentType("text/html;charset=utf-8");//设置相应格式
		String gname=request.getParameter("gname");//设置相应格式
		if(gname==""){
			gname="";
		}
		List<Map<String, String>> types=ts.getTypes();
		request.setAttribute("typelist", types);
		List<Map<String, String>> goods=gs.getGoods(gname);
		request.setAttribute("goodlist", goods);
		request.getRequestDispatcher("/web/index.jsp").forward(request, response);
	}

在处理请求时,我们的超链接请求交由doGet方法处理,doPost方法一般处理表单提交的问题
servlet一般所做的操作设置响应接收格式,调用服务层请求,返还数据
由于该项目中服务层并没有太多操作,我们将服务层与数据库操作合并了,其他的几个项目中没有合并
代码很简单,是因为我们都对这些数据库的操作做了封装

 public  List<Map<String,String>> getTypes(){
			String sql = "select * from types  order by id";
			return db.getList(sql);
	}

完成这些后,经过层层返回,便完成了相应的数据库增删改查操作。

你可能感兴趣的:(经验积累,mvc,数据库,java)